Col·lecció VBA | Com es crea un objecte de col·lecció a VBA?

Objecte de col·lecció Excel VBA

A la codificació VBA, a part de la col·lecció d’elements existent en un grup, també podem crear els nostres propis grups de col·lecció. En els nostres nombrosos articles, hem parlat de variables objecte i en aquest tutorial examinarem detalladament l’objecte de la col·lecció VBA.

Si heu revisat el nostre article anterior "Matrius VBA", això us serà més fàcil d'entendre. Les matrius s’utilitzen per agrupar variables sota un mateix sostre, de manera similar, Collection també s’utilitza per emmagatzemar un grup de variables.

Les col·leccions s’utilitzen per emmagatzemar objectes. Són molt més flexibles que les matrius VBA, mentre que les matrius tenen un límit de mida fix, però les col·leccions no tenen cap límit de mida fix en cap moment i fins i tot no requereixen redimensionament manual.

La col·lecció VBA és molt similar al "Diccionari VBA", però el diccionari requereix una referència d'objecte extern per configurar-la a la finestra de referència d'objectes. Amb VBA Dictionary hem d’establir el tipus de referència com a “Temps d’execució de Microsoft Scripting”, però la col·lecció no requereix cap d’aquests accessoris addicionals.

Com es crea un objecte de col·lecció a VBA?

Per començar amb la col·lecció, primer hem de declarar la variable com "Col · lecció".

Podeu descarregar aquesta plantilla Excel de la col·lecció VBA aquí: plantilla Excel de la col·lecció VBA

Codi:

 Sub Col·lecció_Exemple () Dim Col Com a final de col·lecció Sub 

Com que la col·lecció és una variable d'objecte, hem d'establir la referència de l'objecte creant una nova instància.

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Fi Sub 

Ara amb la variable, podem accedir a tots els mètodes de la col·lecció variable "Col".

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col. Fi Sub 

Abans d’utilitzar aquests mètodes hem de declarar una variable com una cadena.

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Dim Col Result As String End Sub 

Ara utilitzeu la variable "Col" i trieu el mètode "Afegeix".

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col.Afegeix final Sub 

Sota el mètode Add, tenim alguns paràmetres. Suposem que emmagatzemem marques comercials amb el seu preu de venda mitjà al mercat.

Sota Article, l’argument entra en el preu del mòbil.

Codi:

 Col·lecció secundària_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col. Afegeix element: = 15000, Final sub 

A continuació, a sota Clau argument introduïu el nom de la marca del mòbil.

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col. Afegeix element: = 15000, Clau: = "Redmi" Final Sub 

Ara, per a la variable "ColResult", emmagatzemarem el resultat de la variable d'objecte "Col".

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col. Afegeix element: = 15000, Clau: = "Redmi" ColResult = Col (Final sub 

Quan obriu el parèntesi de la variable "Col", podem veure l'argument com a Índex per a aquest argument cal subministrar el clau valor de l’argument del mètode Addició de col·lecció, és a dir, nom de la marca de mòbil.

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col.Afegeix element: = 15000, Clau: = "Redmi" ColResult = Col ("Redmi") End Sub 

Ara mostrem el resultat al quadre de missatges de VBA.

Codi:

 Sub Col·lecció_Exemple () Dim Col com a conjunt de col·leccions Col = Col·lecció nova Col.Add Item: = 15000, Clau: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub 

D'acord, ja hem acabat quan executem el codi, hauríem de veure el preu de la marca mòbil "Redmi".

Millor coneixement dels paràmetres de la clau i de l'element

Estic segur que no és fàcil entendre els paràmetres de l'objecte Collection. Deixeu-me que us expliqui amb un exemple senzill.

Imagineu-vos que teniu un menú de fruites amb el seu nom i el preu de les fruites. Suposem que cerqueu el preu de la fruita "Apple" pel nom de la fruita.

Per cercar el preu de la fruita, hem d’esmentar el nom de la fruita, és a dir, en el llenguatge VBA de la col·lecció Nom de la fruita és Clau i el preu de la fruita és "Article".

És com aplicar la funció VLOOKUP o HLOOKUP, en funció del valor de cerca, obtindrem les dades necessàries de la base de dades. Aquí hi ha el valor de cerca Clau i el resultat és Article.

Exemple avançat

Imagineu-vos que sou gerent de botiga en una de les botigues minoristes i que sou responsable de gestionar les consultes dels clients. Una d'aquestes consultes del client és una consulta sobre el preu del producte.

Heu de permetre que el client cerqui el preu del producte amb informació completa. De la mateixa manera, haureu de mostrar el missatge en cas que no es trobin dades. A continuació es mostra l’exemple de codi que presentarà la casella d’entrada davant de l’usuari i haurà d’introduir el nom del producte que busca, si el producte hi és a la col·lecció, mostrarà el preu del producte esmentat o mostra el missatge com "El producte que cerques no existeix".

Codi:

 Sub Collection_Example2 () Dim ArticlesCol As Collection Dim ColResult As String Set ItemsCol = Nova col·lecció ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Taronja", Item: = 75 ItemsCol.Add Key: = "Meló d'aigua", Article: = 45 ArticlesCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Please" Introduïu el nom de la fruita ") Si ItemsCol (ColResult)" "Aleshores MsgBox" El preu de la fruita "i ColResult &" és: "& ItemsCol (ColResult) La resta MsgBox" El preu de la fruita que busqueu no existeix la col·lecció "Finalitza si finalitza Sub