Colecția VBA - Cum să creați obiect de colecție în VBA?

Obiect de colecție Excel VBA

În codificarea VBA, în afară de colecția existentă de articole dintr-un singur grup, putem crea grupurile noastre de colecție. În numeroasele noastre articole, am vorbit despre variabilele obiect și, în acest tutorial, vom analiza în detaliu obiectul colecției VBA.

Dacă ați parcurs articolul nostru anterior „VBA Arrays”, acest lucru vă va fi mult mai ușor de înțeles. Tablourile sunt utilizate pentru a grupa variabilele sub un singur acoperiș; în mod similar, Colecția este utilizată și pentru a stoca un grup de variabile.

Colecțiile sunt folosite pentru a stoca obiecte. Acestea sunt mult mai flexibile decât matricile VBA, în timp ce matricile au limite de dimensiuni fixe, dar cititorii nu au nicio limită de dimensiune fixă ​​la un moment dat și nici măcar nu necesită redimensionare manuală.

Colecția VBA este foarte asemănătoare cu „Dicționarul VBA”, dar dicționarul necesită referințe de obiect externe pentru a fi setate sub fereastra de referință de obiect. Cu VBA Dictionary, trebuie să setăm tipul de referință ca „Microsoft Scripting Runtime”, dar Colecția nu necesită accesorii suplimentare.

Cum să creați obiect de colecție în VBA?

Pentru a începe mai întâi cu colecția, trebuie să declarăm variabila drept „Colecție”.

Cod:

Sub Colecție_Exemplu () Dim Col Ca Colecție Sfârșit Sub

Deoarece colecția este o variabilă obiect, trebuie să setăm referința obiectului prin crearea unei noi instanțe.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Sfârșit Sub

Acum, cu variabila, putem accesa toate metodele variabilei de colecție „Col.”

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Col. End Sub

Înainte de a utiliza aceste metode, trebuie să declarăm o variabilă ca un șir.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Dim ColResult As String End Sub

Acum utilizați variabila „Col” pentru a alege metoda „Adăugați”.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Col. Adăugare sfârșit Sub

Sub metoda Adăugare, avem parametri specifici. Să presupunem că stocăm pe piață numele mărcilor mobile cu prețul lor mediu de vânzare.

Sub Item, argumentul introduce prețul mobilului.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Col. Adăugare articol: = 15000, Sf

Apoi, sub Argument cheie , introduceți numele mărcii mobile.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Col. Adăugare articol: = 15000, Cheie: = "Redmi" End Sub

Pentru variabila „ColResult”, vom stoca rezultatul variabilei obiect „Col”.

Cod:

Sub Collection_Example () Dim Col As Colection Set Col = Colecție nouă Col. Adăugare articol: = 15000, Cheie: = "Redmi" ColResult = Col (End Sub

Când deschideți parantezele variabilei „Col”, putem vedea argumentul ca Index. Pentru acest argument, trebuie să furnizăm valoarea argumentului critic din metoda Collection add, adică numele mărcii mobile.

Cod:

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

Acum să afișăm rezultatul în caseta de mesaje din VBA.

Cod:

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

Ok, am terminat când rulăm codul. Ar trebui să vedem prețul mărcii de mobil, „Redmi”.

Înțelegere mai bună a parametrilor cheie și articol

Sunt sigur că nu este ușor să înțelegeți parametrii obiectului Colecție. Permiteți-mi să vă explic un exemplu simplu.

Imaginați-vă că aveți un meniu de fructe cu numele lor și prețul fructelor. Să presupunem că căutați prețul fructelor „Apple” după numele fructului.

Pentru a căuta prețul fructului, trebuie să menționăm numele fructului, adică, în limba VBA a colecției Numele fructului este cheia, iar prețul fructului este „Articol”.

Este ca aplicarea funcției VLOOKUP sau HLOOKUP, pe baza valorii de căutare, și vom prelua datele necesare din baza de date. Aici valoarea de căutare este cheie, iar rezultatul este element.

Exemplu avansat

Imaginați-vă că sunteți manager de magazin într-unul dintre magazinele de vânzare cu amănuntul și sunteți responsabil pentru gestionarea întrebărilor clienților. O astfel de interogare a clienților este o anchetă despre prețul produsului.

Ar fi util dacă ați permite clientului să caute prețul produsului cu informații complete. În mod similar, trebuie să afișați mesajul în cazul în care nu au fost găsite date. Mai jos este exemplul de cod care va prezenta caseta de intrare în fața utilizatorului. Aceștia trebuie să introducă numele produsului pe care îl caută. Dacă produsul se află acolo în colecție, acesta va afișa prețul produsului menționat sau va afișa mesajul „Produsul pe care îl căutați nu există”.

Cod:

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: = "Pepene de apă", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Vă rugăm să Introduceți numele fructului ") Dacă ItemsCol (ColResult)" "Atunci MsgBox" Prețul fructului "& ColResult &" este: "& ItemsCol (ColResult) Altele MsgBox" Prețul fructului pe care îl căutați nu există în colecția „End If End Sub

Articole interesante...