arrays - vba 将数组传递给 Dictionary.keys

标签 arrays vba dictionary

我有一个字符串数组 MyStrArray我有一个字典对象 MyDict
如何我通过了吗MyStrArrayMyDict.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

那么,有没有办法解决这个问题?

最佳答案

直接的答案是“不”。

以下只是为了防止您考虑使用助手来避免在主代码中循环

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/

相关文章:

Excel 未检测到三列中的交替重复项

regex - 操作字符串以提取地址

haskell - 具有无限域的映射(替换)

c - "else"之前的预期主表达式

vba - 导入代码行

ios - 如何快速重新使用变量构建数组

python - 有效的数据结构可以在 Pandas 中保持按时间键控的类似字典的观察结果?

python - 我如何使用从文本文件读取的数据在 python 中创建字典列表?

javascript - 当数组达到高于 x 的数字时换行

c - 如何处理从复杂输入(字符串)中提取 double 类型的数字