vba将数组传递给Dictionary.keys

时间:2016-03-21 11:55:18

标签: arrays vba dictionary

我有一个字符串数组MyStrArray,我有一个字典对象MyDict

如何我将MyStrArray传递给MyDict.keys 而不循环?可能吗?

如果我尝试MyDict.keys = MyStrArray我收到错误"对象不支持此方法" 并且键区界限为MyDict.Keys(0 to -1)我知道这意味着什么,我知道我可以遍历数组来填补字典。就这样(简单的例子)

on error resume next 
    for i= Lbound(MyStrArray) To Ubound(MyStrArray)
    MyDict.add key:=MyStrArray(i), item:=whatever
    next i

所以,有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

直接回答是“不”。

以下是为了避免在主代码中使用帮助器来避免循环

Option Explicit

Sub main()

Dim myDict As Dictionary

Dim myArr As Variant
myArr = Array("a", "b", "b")

Set myDict = GetDict(myArr)

End Sub


Function GetDict(keysArray As Variant) As Scripting.Dictionary
Dim dict As New Scripting.Dictionary
Dim i As Long
For i = LBound(keysArray) To UBound(keysArray)
    dict.Add Key:=keysArray(i), Item:=i
Next i
Set GetDict = dict
End Function