VBA系列|如何在VBA中创建集合对象?

Excel VBA集合对象

在VBA编码中,除了现有的一组项目集之外,我们还可以创建自己的集合组。在许多文章中,我们谈到了对象变量,在本教程中,我们将详细介绍VBA集合对象。

如果您阅读了我们先前的文章“ VBA阵列”,那么这将使您更容易理解。数组用于将一个屋顶下的变量分组,类似地,Collection也用于存储一组变量。

集合用于存储对象。它们比VBA阵列灵活得多,而阵列具有固定的大小限制,但是集合在任何给定的时间点都没有固定的大小限制,甚至不需要手动调整大小。

VBA集合与“ VBA词典”非常相似,但是该词典需要外部对象引用才能在对象引用窗口下对其进行设置。使用VBA词典,我们需要将引用类型设置为“ Microsoft Scripting Runtime”,但是Collection不需要任何这些额外的设置。

如何在VBA中创建集合对象?

首先要开始收集,我们需要将变量声明为 “收藏”。

您可以在此处下载此VBA集合Excel模板– VBA集合Excel模板

代码:

 子Collection_Example()昏暗的颜色作为集合结束子 

由于集合是一个对象变量,因此我们需要通过创建一个新实例来设置对象引用。

代码:

 Sub Collection_Example()Dim Col作为集合集Col =新集合结束Sub 

现在有了变量,我们可以访问集合变量“ Col”的所有方法。

代码:

 Sub Collection_Example()Dim Col作为集合集Col =新集合Col.结束Sub 

在使用这些方法之前,我们需要将变量声明为字符串。

代码:

 Sub Collection_Example()Dim Col作为集合集Col =新集合Dim ColResult作为字符串结尾Sub 

现在使用变量“ Col”选择“ Add”方法。

代码:

 Sub Collection_Example()Dim Col作为集合集Col =新集合Col.Add结束Sub 

在Add方法下,我们具有某些参数。假设我们将移动品牌名称及其平均售价存储在市场中。

在下面 物品, 该参数输入手机的价格。

代码:

 Sub Collection_Example()Dim Col As Collection Set Col =新的集合Col.Add Item:= 15000,End Sub 

接下来,在 钥匙 参数输入移动品牌名称。

代码:

 Sub Collection_Example()Dim Col As Collection Set Col =新集合Col.Add Item:= 15000,Key:=“ Redmi” End Sub 

现在,对于变量“ ColResult”,我们将存储“ Col”对象变量的结果。

代码:

 Sub Collection_Example()Dim Col As Collection Set Col =新集合Col.Add Item:= 15000,Key:=“ Redmi” ColResult = Col(End Sub 

当您打开变量“ Col”的括号时,我们可以看到参数为 指数 对于这个论点,我们需要提供 钥匙 来自集合添加方法的参数值,即移动品牌的名称。

代码:

 Sub Collection_Example()Dim Col As Collection Set Col =新集合Col.Add项:= 15000,键:=“ Redmi” ColResult = Col(“ Redmi”)End Sub 

现在,让结果显示在VBA的消息框中。

代码:

 Sub Collection_Example()Dim Col As Collection Set Col =新集合Col.Add项:= 15000,键:=“ Redmi” ColResult = Col(“ Redmi”)MsgBox ColResult End Sub 

好的,当我们运行代码时,我们已经完成了,应该会看到移动品牌“ Redmi”的价格。

更好地理解键和项参数

我确信不容易理解Collection对象的参数。让我用一个简单的例子向您解释。

想象一下,您有一个带有水果名称和价格的水果菜单。假设您正在按水果名称搜索“ Apple”水果价格。

为了搜索水果的价格,我们需要在VBA语言中提及水果的名称 水果名称 钥匙 水果的价格是 “物品”。

就像应用VLOOKUP或HLOOKUP函数一样,基于查找值,我们将从数据库中获取所需的数据。这里的查找值是 钥匙 结果是 物品。

进阶范例

假设您是其中一家零售商店的商店经理,并且您负责管理客户查询。一个这样的客户查询是关于产品价格的查询。

您需要允许客户搜索带有完整信息的产品价格。同样,如果找不到数据,则需要显示该消息。以下是示例代码,该代码将在用户面前显示输入框,他们需要输入要查找的产品名称,如果产品存在集合中,则会显示所提及产品的价格,否则它将显示该产品的价格。显示消息为“您要搜索的产品不存在”。

代码:

 Sub Collection_Example2()Dim ItemsCol作为集合Dim ColResult作为字符串设置ItemsCol = New Collection ItemsCol.Add键:=“ Apple”,Item:= 150 ItemsCol.Add键:=“ Orange”,Item:= 75 ItemsCol.Add键: =“西瓜”,项目:= 45 ItemsCol.Add键:=“ Mush Millan”,项目:= 85 ItemsCol.Add键:=“ Mango”,项目:= 65 ColResult = Application.InputBox(提示:=“ Please输入水果名称“)如果ItemsCol(ColResult)”“则MsgBox”水果的价格“&ColResult&”为:“&ItemsCol(ColResult)其他MsgBox”您要寻找的水果的价格不存在集合”结束如果结束子