Excel 字典数据类型

Excel 字典数据类型,excel,dictionary,key,vba,Excel,Dictionary,Key,Vba,例如,许多来源声称字典的键可以是字符串以外的多种数据类型。然而,当我尝试将整数和日期作为键时,它失败了。有人能解释一下吗 我在下面尝试了@Tim Williams的答案,它很有效。我以前拥有的是 Private Sub trial() Dim dict As New Dictionary dt = 1 'vols.marketDate = Date dict.Add dt, 4 'vols c = dict(dt) End Sub 与@Tim Williams相比,我定义字典的方式有什么不同

例如,许多来源声称字典的键可以是字符串以外的多种数据类型。然而,当我尝试将整数和日期作为键时,它失败了。有人能解释一下吗

我在下面尝试了@Tim Williams的答案,它很有效。我以前拥有的是

Private Sub trial()
Dim dict As New Dictionary

dt = 1
'vols.marketDate = Date
dict.Add dt, 4 'vols
c = dict(dt)
End Sub
与@Tim Williams相比,我定义字典的方式有什么不同吗


我问题的第二部分与词典的价值有关。我运行了以下VBA代码,试图使用用户定义的结构作为措辞的值,并遇到错误消息:

这是否意味着我不能在字典中使用结构作为值,或者我做错了什么?如果是后一种情况,我如何补救?

这里没有问题:

Sub Tester()

    Dim d, k
    Set d = CreateObject("scripting.dictionary")
    d.Add 1, 1
    d.Add "a", 2
    d.Add #1/2/1978#, 3
    d.Add CDbl(66), 4
    d.Add CSng(99), 5
    d.Add True, 6

    For Each k In d.keys
        Debug.Print TypeName(k), k, d(k)
    Next k

End Sub
输出:

Integer        1             1 
String        a              2 
Date          1/2/1978       3 
Double         66            4 
Single         99            5 
Boolean       True           6 

如果您对特定代码有问题,请将其添加到您的问题中

我试过你的样品。它起作用了。我只是在问题中添加了我的原始代码。请你看一下我申报这本词典的方式好吗?有效吗?谢谢你,蒂姆·威廉姆斯。这很奇怪,它以前不起作用。。。我添加了一个相关的第二个问题,关于字典值的数据类型。你介意看看这个问题吗?用类代替类型。
Integer        1             1 
String        a              2 
Date          1/2/1978       3 
Double         66            4 
Single         99            5 
Boolean       True           6