请查看以下两个选项,它们可以通过直接处理转换作为主例程的一部分或将字典传递给返回字符串数组的函数来实现相同的结果;在VBA本地窗口中检查,
arrString
是类型为"String(0 to 2)"的变量。请注意,数组可以使用字典
.Keys
或
.Items
构建。
在第一个示例中,Join
函数创建一个字符串,包括所有aDict.Items
,用"|"
字符分隔。然后,Split
函数将该字符串分解成一个字符串数组,其中"|"
充当用于创建每个数组元素的分隔符。
在这两个示例中,从字典到字符串数组的实际转换都可以用1行代码实现。
选项#1-作为主例程的一部分
Sub Dictionary_to_StringArray()
Dim aDict As Scripting.Dictionary
Dim arrString() As String
Set aDict = New Scripting.Dictionary
aDict.Add "United Kingdom", "London"
aDict.Add "France", "Paris"
aDict.Add "United States of America", "Washington, D.C."
arrString = Split(Join(aDict.Items, "|"), "|") 'this works equally with .Items & .Keys
Set aDict = Nothing
Erase arrString
End Sub
选项 #2 - 由专用函数处理转换
Sub CallingProc()
Dim aDict As Scripting.Dictionary
Dim arrString() As String
Set aDict = New Scripting.Dictionary
aDict.Add "United Kingdom", "London"
aDict.Add "France", "Paris"
aDict.Add "United States of America", "Washington, D.C."
arrString = Make_StringArray_From_Dictionary(aDict)
Set aDict = Nothing
Erase arrString
End Sub
Function Make_StringArray_From_Dictionary(ByVal SubmitDict As Scripting.Dictionary) As String()
Make_StringArray_From_Dictionary = Split(Join(SubmitDict.Items, "|"), "|")
End Function
String
,而是一个 Variant 数组 :P - user2140173