代码之家  ›  专栏  ›  技术社区  ›  surendra

如何在数组中存储和访问字典对象

  •  0
  • surendra  · 技术社区  · 7 年前

    我希望将字典对象存储在数组中,但收到一个错误。有什么方法可以把字典存储在数组中吗

    Sub aaa()
    
        Dim arr(5)
        'arr(0) = 100   
         Set dict_123 = CreateObject("Scripting.Dictionary")
         dict_123.Add "first", 300
         dict_123.Add "Second", 500    
         arr(0) = dict_123   
    
    End Sub
    

    错误是参数个数错误或“arr(0)=dict_123”处的属性分配无效。

    1 回复  |  直到 7 年前
        1
  •  1
  •   QHarr    7 年前

    1. 使用 Option Explicit
    2. Object
    3. 因为它是一个对象,所以您需要使用 set

    Option Explicit
    
    Public Sub aaa()
    
        Dim arr(5)
        Dim dict_123 As Object
        Set dict_123 = CreateObject("Scripting.Dictionary")
        dict_123.Add "first", 300
        dict_123.Add "Second", 500
        Set arr(0) = dict_123
    
    End Sub
    

    编辑:

    Option Explicit
    Public Sub DoSomeThing()
        Dim dict As Object
        Set dict = aaa()(0)
        Dim key As Variant
        For Each key In dict.Keys
            Debug.Print dict(key)
        Next key
    End Sub
    
    Public Function aaa() As Variant
        Dim arr(5)
        Dim dict_123 As Object
        Set dict_123 = CreateObject("Scripting.Dictionary")
        dict_123.Add "first", 300
        dict_123.Add "Second", 500
        Set arr(0) = dict_123
        aaa = arr
    End Function