Колекция VBA - Как да създам обект на колекция във VBA?

Обект на колекция на Excel VBA

При кодирането на VBA, освен съществуващата колекция от елементи под една група, ние можем да създадем нашите групи за колекции. В нашите много статии говорихме за обектни променливи и в този урок ще разгледаме подробно обекта за събиране на VBA.

Ако сте преминали през предишната ни статия „VBA масиви“, това ще бъде много по-лесно за вас да разберете. Масивите се използват за групиране на променливи под един покрив; по подобен начин Collection се използва и за съхраняване на група променливи.

Колекциите се използват за съхранение на обекти. Те са далеч по-гъвкави от VBA масивите, докато масивите имат фиксирани ограничения за размер, но четците нямат никакъв фиксиран размер за даден момент от времето и дори не изискват ръчно преоразмеряване.

Колекцията VBA е много подобна на „Речника на VBA“, но речникът изисква външна препратка към обект, за да се настрои под нея. С речника VBA трябва да зададем референтния тип като „Време за изпълнение на скриптове на Microsoft“, но Collection не изисква допълнителни фитинги.

Как да създам обект на колекция във VBA?

За да започнем първо с колекция, трябва да декларираме променливата като „Колекция“.

Код:

Sub Collection_Example () Dim Col As Collection End Sub

Тъй като колекцията е обектна променлива, трябва да зададем препратка към обект, като създадем нов екземпляр.

Код:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub

Сега с променливата можем да осъществим достъп до всички методи за събиране на променлива „Col.“

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col. End Sub

Преди да използваме тези методи, трябва да декларираме променлива като низ.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Dim ColResult As String End Sub

Сега използвайте променливата „Col“, за да изберете метода „Add“.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col.Add End Sub

При метода Add имаме специфични параметри. Да предположим, че съхраняваме имена на мобилни марки с тяхната средна продажна цена на пазара.

Под артикул аргументът въвежда цената на мобилния телефон.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col.Add Item: = 15000, End Sub

След това под Ключов аргумент въведете името на мобилната марка.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col.Add Item: = 15000, Key: = "Redmi" End Sub

За променливата „ColResult“ ще съхраним резултата от обектната променлива „Col“.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub

Когато отворите скобата на променливата „Col“, можем да видим аргумента като Index. За този аргумент трябва да предоставим критичната стойност на аргумента от метода Collection add, т.е. името на мобилната марка.

Код:

Sub Collection_Example () Dim Col As Set Set Col = Нова колекция Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub

Сега нека покажем резултата в полето за съобщения във VBA.

Код:

Sub Collection_Example () Dim Col As Set Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Добре, приключихме, когато стартираме кода. Трябва да видим цената на мобилната марка „Redmi.“

По-добро разбиране на параметрите ключ и артикул

Сигурен съм, че не е лесно да се разберат параметрите на обекта Collection. Позволете ми да ви обясня един прост пример.

Представете си, че имате меню с плодове с тяхното име и цена на плодовете. Да предположим, че търсите цената на плодовете „Apple“ по името на плода.

To search the price of the fruit, we need to mention the name of the fruit, i.e., in collection VBA language Name of the Fruit is Key, and the price of the fruit is “Item.”

It is like applying the VLOOKUP or HLOOKUP function, based on the lookup value, and we will fetch the required data from the database. Here lookup value is Key, and the result is Item.

Advanced Example

Imagine you are a store manager in one of the retail stores, and you are responsible for managing the customer queries. One such customer query is an inquiry about the product price.

It would help if you allowed the customer to search the price of the product with complete information. Similarly, you need to show the message in case of no data found. Below is the example code which will present the input box in front of the user. They require to enter the name of the product they are looking for. If the product is there in the collection, it will show the price of the mentioned product, or else it will show the message as “The Product you are searching for doesn’t exist.”

Code:

Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = New Collection ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Воден пъпеш", елемент: = 45 артикула Col.Add ключ: = "каша Millan", елемент: = 85 артикула Col.Add ключ: = "манго", елемент: = 65 ColResult = Application.InputBox (Подкана: = "Моля Въведете името на плодовете ") Ако ItemsCol (ColResult)" "Тогава MsgBox" Цената на плодовете "& ColResult &" е: "& ItemsCol (ColResult) Else MsgBox" Цената на плодовете, които търсите, не съществува в колекцията "End If End Sub

Интересни статии...