VBA 字典嵌套字典 + 数组

VBA 字典嵌套字典 + 数组

功能展示为Excel VBA字典中嵌套字典,内层字典值为一个数组

Public Sub arrayInDictWithInDict()
    myarr = Array("1", "2", "3")
    Set mydic = CreateObject("Scripting.Dictionary")
    
    keyTemp = "++abc"
    str1 = "123"
    str2 = "456"
    
    Set dicTemp = CreateObject("Scripting.Dictionary")
    Set mydic(keyTemp) = dicTemp    '关键行,加Set为对象,需要新建一个字典赋给第1层的key,
    mydic(keyTemp)(str1) = myarr
    mydic(keyTemp)(str2) = myarr
    
    If mydic("++abc").Exists("123") Then
        Debug.Print "find 123"              'find 123
    Else
        Debug.Print "not find 123"
    End If
    
    If mydic("++abc").Exists("789") Then
        Debug.Print "find 789"
    Else
        Debug.Print "not find 789"          'not find 789
    End If
    
    Debug.Print mydic("++abc")("456")(2)    '3
    
    temp = mydic("++abc")("456")            '如果更新内层数组内的数据,需要先取出,更新后再存入才有效,不能直接索引更新
    temp(2) = "4"                           '更新值
    mydic("++abc")("456") = temp            '重新赋值
    Debug.Print mydic("++abc")("456")(2)    '4
    
    For Each oneKey In mydic.keys
        Debug.Print oneKey                  '++abc
        For Each oneT In mydic(oneKey).keys
            Debug.Print oneT                '123/456
        Next
    Next
    
End Sub

运行结果为:

find 123
not find 789
3
4
++abc
123
456
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值