在VBA中检查嵌套字典键是否存在

9

我正在尝试在Excel VBA中使用字典嵌套字典。我想要找出的是,是否已经存在嵌套字典的键,如果不存在,则添加它。

我的数据看起来像下面这样:

Country, Customer, Purchased
US, Alan, Lawnmower
US, Alan, Hammer
US, Karen, Donkey
US, Simon, Mustang
MX, Carl, Lawnmower
MX, Alan, Donkey
...

我心中所想的数据结构看起来像是字典-->字典-->数组--也就是说,国家-->客户-->购买信息

如果一个国家在国家字典中不存在,我使用的代码如下:

If Not dataset.Exists(country) Then 
...

然而,以下类似的代码将无法工作:
If Not dataset.Exists(country)(customer) Then 
.... 

如何检查字典条目的下一级?是将国家词典的内容存储在数组中,然后检查它(这似乎很混乱)吗?

1个回答

6
您可以使用这个:
If Not dataset.Exists(country) Then
    'if country doesn't exists do sth
ElseIf Not dataset(country).Exists(customer) Then
    'if country exists, but customer doesn't exists do sth
End If

这是否意味着您可以为所有可能嵌套的字典保持点符号运行? - Blue Otter Hat
当你使用嵌套字典作为项时,在你的情况下,dataset(country)返回字典对象(如果带有键country的项存在),因此你可以使用任何字典对象支持的操作来处理dataset(country): .Add.Exists等。对于两次嵌套字典的方法也是相同的。 - Dmitry Pavliv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接