2011-07-26 90 views
5

我在努力使我的字典對象工作返回所選引用號的經濟細節。在Excel VBA中使用字典對象

例如我有下面的引用編號和相應的值,但是,不知道如果我可以使用Dictionary對象來實現這一點,並且備選方案,建議將不勝感激。

Ref No Amount Price Year 
IB1232 1000 1.23 2011 
IB1231 1000 3.23 2011 
IB1233 1000 3.43 2011 
IB1234 1000 3.43 2011 

我想就能夠通過形成鍵和值參考,其相應的實現細節,但未能實現..

+0

是Ref No,Amount,Price和Year seperate列(如A:D)?你試圖找回哪些數據?這可能是您可以使用VLookup的情況(例如,如果您有參考編號,並且您想在數據表中查找並返回金額)。 – aevanko

+0

對於VBA中的字典結構本身,請參見[this](http://stackoverflow.com/questions/915317/does-vba-have-dictionary-structure)SO Article。 – JackOrangeLantern

回答

12

我不知道你指的是什麼樣的VBA中的字典,因爲具有上述功能的數據結構在VBA中被稱爲Collection(但也許你編寫了你自己的Ditionary,在這種情況下,我們需要代碼以便能夠幫助你)。

如果我的例子正確,您想通過密鑰「IB1232」訪問例如{1000,1.23,2011}。您可以通過創建的集合這樣的收集很容易做到這一點:

Dim coll as new Collection 
Dim data as new Collection 

data.Add 1000 
data.Add 1.23 
data.Add 2011 

coll.Add data, "IB1232" 

訪問您的數據剛剛獲得通過的關鍵

Debug.Print coll.Item("IB1232")(1) 'Prints 1000 
Debug.Print coll.Item("IB1232")(2) 'Prints 1.23 
Debug.Print coll.Item("IB1232")(3) 'Prints 2010 

所需的記錄(集)您也可以使用數組對於數據

+0

您好,非常感謝您的快速響應 - 是的,我指的是VBA中的Dictionary對象 - 無法通過使用Excel/VBA使用Dict對象來實現您的示例。 –

14

@das_weezul

有一個在VBA Dictionary對象在腳本庫變體(您需要添加參考使用它)。 Dictionary具有一些額外的功能,例如在嘗試訪問密鑰之前檢查密鑰是否存在。

@Sky科布

是的,你可以做一切與字典上述任務。語法將相同,除了您應爲每個添加到它的項目提供一個鍵。

+0

Thans很多設法與收集工作 - 工作得很好,並獲得成果。 –