VBA Gyűjtemény - Hogyan hozzunk létre gyűjteményobjektumot a VBA-ban?

Excel VBA gyűjtemény objektum

A VBA kódolásban az egy csoportba tartozó tételek gyűjteményén kívül létrehozhatjuk a gyűjtőcsoportjainkat. Sok cikkünkben tárgyaltunk az objektumváltozókról, és ebben az oktatóanyagban részletesen áttekintjük a VBA gyűjtemény objektumot.

Ha áttekintette korábbi „VBA tömbök” cikkünket, ezt sokkal könnyebben meg fogja érteni. A tömbök a változók egy fedél alá csoportosítására szolgálnak; hasonlóképpen a Gyűjteményt egy változócsoport tárolására is használják.

A gyűjteményeket objektumok tárolására használják. Sokkal rugalmasabbak, mint a VBA tömbök, míg a tömböknek vannak rögzített méretkorlátjai, de az olvasóknak nincsenek rögzített méretkorlátjaik az adott időpontban, és nem is igényelnek kézi átméretezést.

A VBA Gyűjtemény nagyon hasonlít a „VBA szótárhoz”, de a szótár külső objektum hivatkozást igényel az objektum hivatkozási ablak alatt. A VBA Dictionary használatával a referencia típusát „Microsoft Scripting Runtime” -ként kell beállítanunk, de a Collection nem igényel extra szerelvényeket.

Hogyan hozzunk létre gyűjteményobjektumot a VBA-ban?

Először a gyűjtés megkezdéséhez a változót „Gyűjteményként” kell deklarálnunk .

Kód:

Algyűjtemény_Példa () Dim Col As Collection End Sub

Mivel a gyűjtemény objektumváltozó, új példány létrehozásával kell beállítanunk az objektum hivatkozását.

Kód:

Algyűjtemény_Példa () Dim Col mint gyűjteménykészlet Col = New Collection End Sub

Most a változóval elérhetjük a „Col.” gyűjtő változó összes módszerét

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = Új gyűjtemény Col. End Sub

Mielőtt ezeket a módszereket alkalmaznánk, deklarálnunk kell egy változót stringként.

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = New Collection Dim ColResult As String End Sub

Most használja a „Col” változót az „Add” módszer kiválasztásához.

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = New Collection Col.Ad End End Sub

Az Add metódus alatt konkrét paramétereink vannak. Tegyük fel, hogy mobil márkaneveket tárolunk átlagos piaci eladási árukkal.

A Cikk alatt az argumentum megadja a mobil árát.

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = New Collection Col. Add Item: = 15000, End Sub

Ezután a Kulcs argumentum alatt írja be a mobil márkanevet.

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = New Collection Col. Add Item: = 15000, Key: = "Redmi" End Sub

A „ColResult” változó esetében a „Col” objektumváltozó eredményét tároljuk.

Kód:

Algyűjtemény_Példa () Dim Col mint gyűjteménykészlet Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub

A „Col” változó zárójelének megnyitásakor az argumentumot Indexként láthatjuk . Ehhez az érvhez meg kell adnunk a kritikus argumentum értékét a Collection add metódusból, azaz a mobil márka nevét.

Kód:

Algyűjtemény_Példa () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub

Most hagyja, hogy az eredmény megjelenjen a VBA üzenetmezőjében.

Kód:

Algyűjtemény_Példa () Dim Col mint gyűjteménykészlet Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Ok, készen vagyunk, amikor futtatjuk a kódot. Látnunk kellene a mobilmárka, a „Redmi” árát.

A kulcs- és elemparaméterek jobb megértése

Biztos vagyok benne, hogy nem könnyű megérteni a Gyűjtemény objektum paramétereit. Hadd magyarázzak el egy egyszerű példát.

Képzelje el, hogy van egy menüje a gyümölcsökről, azok nevével és árával. Tegyük fel, hogy az „Apple” gyümölcs árán a gyümölcs neve szerint keres.

A gyümölcs árának kereséséhez meg kell említenünk a gyümölcs nevét, azaz a VBA gyűjteményben a Gyümölcs neve kulcs, és a gyümölcs ára „Cikk”.

Ez olyan, mintha a VLOOKUP vagy a HLOOKUP függvényt alkalmaznánk, a keresési érték alapján, és lekérjük a szükséges adatokat az adatbázisból. Itt a keresési érték a Kulcs, az eredmény pedig az Elem.

Haladó példa

Képzelje el, hogy Ön üzletvezető az egyik kiskereskedelmi üzletben, és Ön felel az ügyfelek kérdéseinek kezeléséért. Az egyik ilyen ügyfélkérdezés a termék árával kapcsolatos érdeklődés.

Segítene, ha megengedné, hogy az ügyfél teljes információkkal keresse meg a termék árát. Hasonlóképpen meg kell jelenítenie az üzenetet, ha nem található adat. Az alábbiakban látható a példa kód, amely bemutatja a beviteli mezőt a felhasználó előtt. Meg kell adniuk a keresett termék nevét. Ha a termék ott van a gyűjteményben, akkor az említett termék árát mutatja, vagy pedig azt az üzenetet jeleníti meg, hogy „A keresett termék nem létezik”.

Kód:

Algyűjtemény_Example2 () Dim ItemsCol mint Gyűjtemény Dim ColResult As String Set ItemsCol = Új gyűjtemény ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Vízidinnye", tétel: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Please Adja meg a gyümölcs nevét ") Ha ItemsCol (ColResult)" "Akkor MsgBox" A gyümölcs ára "& ColResult &" a következő: "& ItemsCol (ColResult) Egyéb MsgBox" A keresett gyümölcs ára nem létezik a gyűjtemény "Vége, ha vége al

érdekes cikkek...