vba - 如何更改集合中某个项目的值

标签 vba excel collections

使用此代码(在 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

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

这是唯一的方法吗?

Coll.Remove "String1"
Coll.Add "myString", "String1"

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

Coll("String1") = "myString"

最佳答案

您还可以编写一个(公共(public))函数来更新集合。

public function updateCollectionWithStringValue(coll as Collection, key as string, value as string) as collection
    coll.remove key
    coll.add value, key
    set updateCollectionWithStringValue = coll
end function

您可以通过以下方式调用此函数:

set coll = updateCollectionWithStringValue(coll, "String1","myString")

然后你就可以调用一个衬垫了。

关于vba - 如何更改集合中某个项目的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29541710/

相关文章:

vba - 将非空白单元格(列中)的值除以空单元格并使用 vba 重复

vba - Excel - 根据单元格值删除当前行和上面的行

excel - 如何在 Excel 中获取显示值而不是实际值?

java - 如何创建匿名类对象的数组或集合

Java 8 - 就地映射数组/集合

java - 使用线程安全对 concurrentHashMap 进行排序

c++ - Excel VBA,无法从 DLL 文件中找到 DLL 入口点

vba - 使用字典作为另一个字典中的项目来计算唯一值

Excel VBA 检查 InStr 函数中的值

c# - csvhelper 一切都写在 Excel 的一栏中