【问题标题】:vba passing an array to a Dictionary.keysvba 将数组传递给 Dictionary.keys
【发布时间】:2016-07-07 22:08:15
【问题描述】:

我有一个字符串数组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

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

【问题讨论】:

  • 据我所知,顺便说一句,这不是很多,我认为您需要循环或声明字典的每个数组位置。

标签: arrays vba dictionary


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2020-08-19
    • 1970-01-01
    相关资源
    最近更新 更多