2011-07-26 53 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很多设法与收集工作 - 工作得很好,并获得成果。 –