gpt4 book ai didi

vba - 当存储在集合中时,如何更改类属性的值

转载 作者:行者123 更新时间:2023-12-02 21:23:53 25 4
gpt4 key购买 nike

我想将类存储在集合中,并且能够更改该类的属性,而无需删除集合项并将其重新添加回来。

我的研究表明,如果没有删除/替换操作,则无法更改项目本身,但是项目的属性又如何呢?

最佳答案

下面的代码展示了如何执行此操作。当您运行宏时,调试窗口将显示存储对象的初始值和更改后的值。

如果不使用Key,则需要通过索引号来引用集合项。

类模块

Option Explicit
'RENAME cNodes

Private pNode1 As Variant
Private pNode2 As Variant

Public Property Get Node1() As Variant
Node1 = pNode1
End Property
Public Property Let Node1(Value As Variant)
pNode1 = Value
End Property

Public Property Get Node2() As Variant
Node2 = pNode2
End Property
Public Property Let Node2(Value As Variant)
pNode2 = Value
End Property

常规模块

Option Explicit
Sub ChangeCollectionItem()
Dim COL As Collection, cN As cNodes
Dim sKey As String
Dim a, b

Set COL = New Collection
a = 1
b = 2
Set cN = New cNodes
With cN
.Node1 = a
.Node2 = b
sKey = a & "|" & b

COL.Add Key:=sKey, Item:=cN

Debug.Print COL(sKey).Node1, COL(sKey).Node2 '--> 1 2

With COL(sKey)
.Node1 = .Node1 * 10
.Node2 = .Node2 * 5
End With

Debug.Print COL(sKey).Node1, COL(sKey).Node2 '--> 10 10
End With

End Sub

关于vba - 当存储在集合中时,如何更改类属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46533028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com