VBA:字典项到字符串数组?

Lee*_*ite 5 arrays vba dictionary type-conversion

我想做的事情相当简单.我想获得a中所有项(值)的列表Dictionary,并将它们保存在字符串数组中.

我猜这段代码会起作用:

Sub PrintFilters(ByVal crit As Dictionary)
    Dim i() As String
    i = crit.Items()
    ' Do stuff with i
End Sub
Run Code Online (Sandbox Code Playgroud)

但是,我在第三行遇到类型不匹配.我猜测crit.Items()返回值是某种列表,而不是数组.但是,MSDN页面没有提到此方法的返回值的类型.

有没有正确的方法来做到这一点?

Mai*_*kov 7

我认为是变体类型所以试试这个:

Sub PrintFilters(ByVal crit As Dictionary)
    Dim i As Variant
    i = crit.Items()
    ' Do stuff with i
End Sub
Run Code Online (Sandbox Code Playgroud)


Ale*_* K. 5

如果你需要一个字符串数组,你需要手动建立一个作为.Itemsvariant()

Sub PrintFilters(crit As Dictionary)
    Dim key As Variant, i As Long

    ReDim items(crit.Count - 1) As String

    For Each key In crit.Keys()
        items(i) = crit(key)
        i = i + 1
    Next

    Debug.Print Join(items, ", ")
End Sub
Run Code Online (Sandbox Code Playgroud)