请在以下 2 个选项中找到实现相同结果的方法,方法是直接将转换作为主例程的一部分进行处理,或者将字典传递给返回字符串数组的函数; VBA Locals 窗口中的检查表明arrString 是“字符串(0 到 2)”类型的变量。请注意,可以使用字典 .Keys 或 .Items 构建数组。
在第一个示例中,Join 函数创建了一个字符串,其中包含由"|" 字符分隔的所有aDict.Items。然后Split 函数将该字符串分解为一个字符串数组,其中"|" 充当用于创建每个数组元素的分隔符。
在这两个示例中,从 Dictionary 到 String Array 的实际转换都是用 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