Как использовать 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"
Приведенный выше код добавит в коллекцию строку «Яблоки».
items.Add 1.4
Приведенный выше код добавит двойной 1.4 в конец коллекции.
Мы также можем определить ключи к этим элементам. Эти ключи можно использовать для доступа к элементам коллекции.
Вставка элементов в коллекцию до или после существующего элемента
Метод Add добавляет новые элементы в конец коллекции. Метод add имеет четыре параметра.
Add(item,[Key],[Before],[After])
Первый аргумент необходим. Это объект или то, что вы хотите добавить в коллекцию. Остальные аргументы необязательны. Мы увидим использование этих аргументов в этом разделе.
Если мы хотим добавить какой-либо элемент до или после определенного индекса / ключа, мы используем параметры Before и After метода Add.
items.Add True, "b", "cnst" 'Or items.Add True, Before:="cnst"
Обе строки вставят логическое значение перед ключом «cnst» в элементах коллекции VBA.
Чтобы вставить элемент после пертикулярного индекса / элемента / ключа, мы используем параметр After метода Add.
'inserting "Mango" with key "m" after key "cnst" items.Add "Mango", Key:="m", after:="b"
Над строкой будет вставлено «Mango» с клавишей «m» после клавиши «b».
Примечание: * Ключи предметов должны быть уникальными. Любой ключ, который уже существует в коллекции, не будет принят. VBA вернет ошибку, что «ключ уже связан с элементом этой коллекции».
Мы можем использовать это в наших интересах, чтобы получить уникальный список из коллекции.
Доступ к элементам коллекции (Collection.Item)
Есть два метода доступа к элементам коллекции. . CollectionName («индекс / ключ»)
-
CollectionName.Item («индекс / ключ»)
Например, для доступа к члену в коллекции элементов * с индексом 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. Метод удаления принимает один аргумент. Это может быть индекс или ключ элемента (если есть).
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 имеет множество преимуществ и возможностей использования в офисных инструментах. Мы будем исследовать их вместе. А до тех пор, если у вас есть какие-либо вопросы относительно сбора или чего-либо, связанного с Excel / VBA, укажите в разделе комментариев ниже.