如何更改集合项的值

gen*_*pos 8 collections excel vba excel-vba

使用此代码(在excel-vba中)我根据数组向集合中添加了许多项目.
我使用数组的值作为键,并使用字符串"NULL"作为添加的每个项的值.

Dim Coll As New collection
Dim myArr()

Set Coll = New collection
myArr() = Array("String1", "String2", "String3")

For i = LBound(myArr) To UBound(myArr)
    Coll.Add "NULL", myArr(i)
Next i
Run Code Online (Sandbox Code Playgroud)

现在,如果我想更改项目的值,通过键识别它,我必须删除该项目,然后添加具有相同键的项目,或者是否可以更改项目值?

以下是唯一的方法吗?

Coll.Remove "String1"
Coll.Add "myString", "String1"
Run Code Online (Sandbox Code Playgroud)

或者有类似的东西:(我知道这不起作用)

Coll("String1") = "myString"
Run Code Online (Sandbox Code Playgroud)

小智 6

您还可以编写(公共)函数来更新集合.

public function updateCollectionWithStringValue(coll ax Collection, key as string, value as string) as collection
coll.remove key
coll.add value, key
set updateCollectionWithStringValue = coll
end function
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式调用此功能:

set coll = updateCollectionWithStringValue(coll, "String1","myString")
Run Code Online (Sandbox Code Playgroud)

然后你有一个内衬来调用.