如何使用VBA集合在Excel
集合是一种数据类型,它像数组一样保存存储对象(但有所不同)。在编写基本VBA代码时,您必须使用过工作簿,工作表,范围等。它们都是集合。在本文中,我们将学习VBA集合。
什么是VBA中的集合?
集合是一种数据类型,它与数组一样存储相似类型的对象。但是与数组不同,它的大小可以根据需要动态增加或减少。
您可以添加,查找,获取和删除集合中的项目。
与数组不同,您不能更改集合中项目的值。如果需要,可以将数组用作集合中的项目。
集合具有4个与之关联的属性或方法。
Collection.Add Collection.Item Collection.Count Collection.Remove
通过本文,将探索这些属性的使用。
如何在VBA中创建集合?
集合是一个对象,因此有必要对其进行声明和初始化。与VBA中的任何其他对象一样,在VBA中有两种创建集合的方法。
1.即时创建
Dim items as new Collection
在上述方法中,立即创建了对象。您可以立即根据需要使用此集合。
2.延迟创建
Dim items as Collection Set items = New Collection
在此方法中,首先创建集合的引用,并在需要时使用集合对象进行初始化。使用此方法,您可以选择根据某些条件创建集合。
将项目添加到集合(Collection.Add)
我们使用Add方法将新项目添加到集合中。
items.Add "Apples"
上面的代码将在集合中添加字符串“ Apples”。
items.Add 1.4
上面的代码会将双1.4添加到集合的末尾。
我们还可以定义这些项目的键。这些键可用于访问集合中的项目。
在现有项目之前或之后在集合中插入项目
Add方法将新项目添加到集合的末尾。 add方法具有四个参数。
Add(item,[Key],[Before],[After])
第一个参数是必要的。它是对象或要添加到集合中的对象。其余参数是可选的。我们将在本节中看到这些参数的用法。
如果要在某个垂直索引/键之前或之后添加某些项目,则可以使用Add方法的Before和After参数。
items.Add True, "b", "cnst" 'Or items.Add True, Before:="cnst"
这两行都将在VBA集合项中的键“ cnst”之前插入一个布尔值。
要在垂直索引/项目/键之后插入项目,我们使用Add方法的After参数。
'inserting "Mango" with key "m" after key "cnst" items.Add "Mango", Key:="m", after:="b"
上面的行将在键“ b”之后插入键“ m”的“ Mango”。
注意:*项目的键应唯一。集合中已存在的任何密钥将不被接受。 VBA将返回错误“密钥已与此集合的元素相关联”。
我们可以利用这个优势,从集合中获取唯一列表。
访问集合的项目(Collection.Item)
有两种访问集合项的方法。 。 CollectionName(“索引/键”)
。 CollectionName.Item(“ index / key”)
例如,要访问索引为1且键为“ apl”的集合项*中的成员,我可以使用以下任何VBA代码。
Debug.Print items.Item(1) -- Debug.Print items(1) -- Debug.Print items.Item("apl") -- Debug.Print items("apl")
如何获取集合中的项目计数? (Collection.Count)
要获取集合中对象或项目的总数,我们使用集合的.Count函数。 .Count方法返回集合中的项目总数。
items.Count
上面的行将给出集合具有的对象数。
如何访问集合的所有项目?
在VBA中访问集合的所有项目的唯一方法是循环。
我们遍历集合的每个项目以访问它们。为此,我们使用for循环。 for-each循环被认为是访问集合对象的最快,最干净的方法。
遍历VBA中的集合
有多种方法可以在VBA中循环浏览集合。对于每个循环,我们将使用最优雅的方式来遍历整个集合。
仅使用此行VBA代码就无法遍历集合的每个项目。
For Each itm In items Debug.Print itm Next itm
从集合中删除项目(Collection.Remove)
要从vba集合中删除项目,我们可以使用Remove方法。 remove方法采用一个参数。它可以是项目的索引或键(如果有)。
items.Remove (1) 'using index -- items.Remove 1 -- items.Remove ("apl") 'using key -- items.Remove "apl"
在VBA中删除收藏集
好吧,您无法在vba中删除集合。但是,可以通过将其再次设置为新集合来删除该集合的所有项目。
Set items = New Collection
这行代码将在商品地址上创建一个新集合。
因此,我们的收藏将被清空。
VBA中的数组与集合
normally.
first.
|
above examples.
directly. |
是的,这是收藏的基础。 VBA收集在Office工具中有很多好处和用途。我们将一起探索它们。直到那时,如果您对集合有任何疑问或与Excel / VBA有关的任何内容,请在下面的注释部分中进行填写。