2014-02-21 95 views
6

我正嘗試在Excel VBA中使用字典詞典。我想知道的是嵌套字典是否已經有一個鍵,如果沒有,添加它。檢查VBA中是否存在嵌套字典鍵

我的數據如下所示:

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

的數據結構,我心目中的樣子dictionary --> dictionary --> array - 那就是,country --> customer --> purchased

我使用找出如果一個國家沒有在country字典中的代碼是:

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

然而,代碼如下所示不起作用:

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

你如何檢查下一級字典條目?是否將國家字典的內容存儲在數組中,然後檢查(看起來是一團糟)?

回答

4

您可以使用此一:

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 
+0

那是否也意味着你能保持你可能已經嵌套在所有詞典運行點符號? –

+0

當然,*在你的情況下*(當你使用嵌套字典作爲項目時)'dataset(country)'返回對象對象(如果項目的關鍵字'country'存在),所以你可以使用字典對象支持的任何操作'數據集(國家)':'.Add','.Exists'等等。兩次嵌套字典的方法將是相同的 –