2012-05-23 4 views
3

У меня есть коллекция следующим образом:Переименование ключ пункта в коллекции с помощью VBA в Excel

Set NodeColl = New Collection 
NodeColl.Add "Node 1", "Node 1" 
NodeColl.Add "Node 2", "Node 2" 
NodeColl.Add "Node 3", "Node 3" 

Я интересно, если есть простой способ переименовать ключи селективных элементов, не затрагивая другие элементы или коллекции сам. Например, что-то вроде NodeColl.Items («Node 1»). Key = «Some string»

ответ

3

Нет, вам нужно будет добавить & удалить вручную;

with NodeColl 
    .add .Item("Node 2"), "New Key", , "Node 2" 
    .remove "Node 2" 
end with 

Или использовать Dictionary, который позволяет это, либо путем добавления ссылки на Microsoft Scripting выполнения или;

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" 
Смежные вопросы