VBA húrtömb - Hogyan deklarálhatjuk és inicializálhatjuk a karakterlánctömböt az Excel VBA-ban?

Excel VBA karakterlánc tömb

A VBA-ban a String tömb nem más, mint egy tömb változó, amely egynél több string értéket is képes tárolni egyetlen változóval.

Nézze meg például az alábbi VBA kódot.

Kód:

Sub String_Array_Example () Dim CityList (1–5) Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub

A fenti kódban deklaráltam tömb változónak, és egy tömb hosszát 1 és 5 közé osztottam.

Dim CityList (1–5) mint variáns

Ehhez a tömbváltozóhoz 5 városnevet rendeltem, amelyek mindegyik tömbszámot megemlítik a zárójelben.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Ezután írtam egy kódot, amely megmutatja ezeket a városneveket az üzenetmezőben.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Amikor futtatom ezt a kódot, kapunk egy üzenetdobozt, amely az összes városnevet egyetlen üzenetdobozban tartalmazza.

Mindannyian tudjuk, hogy ez annyi időt spórolt meg az ütemtervünkből, hogy megszüntettük az egyes városok egyedi változóinak deklarálását. Azonban még egy dolgot meg kell tanulnia, hogy továbbra is csökkenthetjük a karakterlánc-értékekhez írt sor kódját. Nézzük meg, hogyan írunk kódot a VBA string tömbökhöz.

Példák karakterlánc tömbre az Excel VBA-ban

Az alábbiakban bemutatjuk az excel VBA string tömb példáit.

1. példa

Amint a fenti kódban láthattuk, megtanultuk, hogy a meghatározott tömbméret alapján egynél több értéket is eltárolhatunk a változóban.

Most azt kell tennünk, hogy ne határozzuk meg jó előre a tömb hosszát.

Kód:

Sub String_Array_Példa1 () Dim CityList (), mint Variant End Sub

Mint fent látható a zárójelben, nem írtam hosszat. Ehhez a változóhoz illesszünk be értékeket a VBA ARRAY függvény használatával.

A tömbben adja meg az értékeket dupla idézőjelben, vesszővel elválasztva (,).

Kód:

Sub String_Array_Példa () Dim CityList () Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub

Most őrizze meg a régi kódot, hogy a városnevek eredménye megjelenjen a VBA üzenetmezőjében.

Kód:

Sub String_Array_Példa1 () Dim CityList () Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub

Az egyik változtatás, amelyet a fenti kódban hajtottam végre, az az, hogy nem döntöttünk egy tömb változó alsó és felső határáról, és az ARRAY függvényt használtuk a tömbök száma 0-tól kezdődik, nem pedig 1-től.

Ezért emlegettük az értékeket CityList (0), ClityList (1), CityList (2), CityList (3) és CityList (4).

Most futtassa a kódot az Excel F5 gyorsbillentyűjével vagy manuálisan. Ugyanazt az eredményt kapjuk, mint az előző kódból.

2. példa

VBA karakterlánc tömb LBOUND és UBOUND funkciókkal

Abban az esetben, ha nem akarja az összes városlistát egyetlen üzenetmezőben megjeleníteni, akkor hurokokat kell beillesztenie, meg kell határoznia még egy változót a hurkok számára.

A FOR NEXT ciklus felvétele érdekében nem vagyunk biztosak abban, hogy hányszor kell futtatnunk a kódot. Ebben az esetben úgy dönthetünk, mint ötször, de ez nem a helyes megközelítés a probléma megközelítéséhez. Tehát mi lenne az automatikus alacsonyabb és magasabb szintű tömbhossz-azonosító ötletével ???

Amikor kinyitjuk a KÖVETKEZŐ ciklust, a helyzet függvényében általában 1 - 5 vagy 1 - 10 közötti ciklust határozunk meg. A számok kézi beírása helyett használjuk az LBOUND és az UBOUND függvényeket az alsó és a felső érték automatikus meghatározásához.

Az LBound és az Ubound esetében megadtam egy tömb nevet, azaz a CityList-et. A VBA LBound a tömbváltozó alsó értékét, a VBA UBound függvény pedig a tömbváltozó felső értékét azonosítja.

Most mutassa meg az értéket az üzenetmezőben, ahelyett, hogy beillesztené a sorozatszámot, hagyja, hogy a „k” ciklusváltozó automatikusan átvegye a tömb értékét.

Kód:

Sub String_Array_Example1 () Dim CityList () változóként Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") k = LBound (CityList) UBound (CityList) MsgBox CityList (k) Következő k End Sub

Az üzenetmezőben minden város neve külön-külön jelenik meg.

3. példa

VBA karakterlánc tömb osztott funkcióval

Most tegyük fel, hogy vannak olyan városneveid, mint az alábbiak.

Bangalore; Mumbai; Kolkata; Hydrabad; Orissa

In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", ";") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Most a SPLIT függvényfelosztás értékei határozzák meg a legmagasabb tömbhosszt is.

Dolgok, amikre emlékezni kell

  • Az LBOUND és az UBOUND a tömbhosszak meghatározására szolgáló funkciók.
  • Az ARRAY függvény sok értéket tartalmazhat egy deklarált változóhoz.
  • Ha egyszer használni szeretné az ARRAY funkciót, ne döntse el a tömb hosszát.

érdekes cikkek...