在 Excel 中使用 VBA 重命名集合中项目的键

Ehu*_*udz 3 collections excel vba

我有一个集合如下:

Set NodeColl = New Collection
NodeColl.Add "Node 1", "Node 1"
NodeColl.Add "Node 2", "Node 2"
NodeColl.Add "Node 3", "Node 3"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种简单的方法可以在不影响其他项目或集合本身的情况下重命名选择性项目的键。例如,像 NodeColl.Items("Node 1").Key = "Some string"

Ale*_* K. 6

不,您需要手动添加和删除;

with NodeColl
    .add .Item("Node 2"), "New Key", , "Node 2"
    .remove "Node 2"
end with
Run Code Online (Sandbox Code Playgroud)

或者Dictionary通过添加对Microsoft Scripting Runtime的引用或使用允许此操作的 a ;

dim NodeColl as object: Set NodeColl = createobject("Scripting.dictionary")
NodeColl.add "key for Node 1", "Node 1"
NodeColl.add "key for Node 2", "Node 2"
NodeColl.add "key for Node 3", "Node 3"

'//direct rename allowed;
NodeColl.Key("key for Node 2") = "New Key here"
Run Code Online (Sandbox Code Playgroud)