我有一个字符串数组 MyStrArray
,我有一个字典对象 MyDict
如何将 MyStrArray
传递给 MyDict.keys
不循环 ?是否可以?
如果我尝试 MyDict.keys = MyStrArray
,我会收到错误“对象不支持此方法”,并且键边界是 MyDict.Keys(0 to -1)
我知道这意味着什么,我知道我可以遍历数组以填充 dict。因此(简单的例子)
on error resume next
for i= Lbound(MyStrArray) To Ubound(MyStrArray)
MyDict.add key:=MyStrArray(i), item:=whatever
next i
那么,有没有办法解决这个问题?
最佳答案
直接的答案是“不”。
以下只是为了防止您考虑使用助手来避免在主代码中循环
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
关于arrays - vba 将数组传递给 Dictionary.keys,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36130370/