Pole reťazcov VBA - Ako deklarovať a inicializovať pole reťazcov v programe Excel VBA?

Reťazcové pole programu Excel VBA

Vo VBA nie je pole String nič iné ako premenná poľa, ktorá môže obsahovať viac ako jednu hodnotu reťazca s jednou premennou.

Napríklad sa pozrite na nižšie uvedený kód VBA.

Kód:

Sub String_Array_Example () Dim CityList (1 To 5) As 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

Vo vyššie uvedenom kóde som deklaroval ako premennú poľa a priradil som dĺžku poľa ako 1 až 5.

Dim CityList (1 až 5) ako variant

Pre túto premennú poľa som priradil 5 názvov miest, ktoré v zátvorke uviedli každý počet polí.

CityList (1) = "Bangalore" CityList (2) = "Bombaj" CityList (3) = "Kalkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Ďalej som napísal kód na zobrazenie týchto názvov miest v schránke správ.

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

Keď spustím tento kód, dostaneme okno so správou, ktoré zobrazuje všetky názvy miest v jednej schránke.

Všetci vieme, že to ušetrilo toľko času z nášho harmonogramu odstránením úlohy vyhlasovať jednotlivé premenné pre každé mesto. Ešte jedna vec, ktorú sa musíte naučiť, je, že môžeme stále znižovať kód riadku, ktorý píšeme pre hodnoty reťazca. Pozrime sa, ako píšeme kód pre reťazce polí VBA.

Príklady reťazcového poľa v programe Excel VBA

Nižšie uvádzame príklady poľa reťazcov Excel VBA.

Príklad č

Ako sme videli vo vyššie uvedenom kóde, dozvedeli sme sa, že do premennej môžeme uložiť viac ako jednu hodnotu na základe určenej veľkosti poľa.

Teraz musíme nerozhodovať o dĺžke poľa v dostatočnom predstihu.

Kód:

Sub String_Array_Example1 () Dim CityList () ako variant End Sub

Ako vidíte vyššie v zátvorke, nenapísal som žiadne dĺžky. Teraz pre túto premennú vložme hodnoty pomocou funkcie VBA ARRAY.

Vo vnútri poľa odovzdajte hodnoty v dvojitých úvodzovkách, ktoré sú oddelené čiarkou (,).

Kód:

Sub String_Array_Example () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub

Teraz si ponechajte starý kód, aby sa v schránke správ vo VBA zobrazoval výsledok názvov miest.

Kód:

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

Jedna zmena, ktorú som urobil vo vyššie uvedenom kóde, je ten, že sme sa nerozhodli pre dolnú a hornú hranicu premennej poľa a použili sme počet polí funkcie ARRAY od 0, nie od 1.

To je dôvod, prečo sme spomenuli hodnoty ako CityList (0), ClityList (1), CityList (2), CityList (3) a CityList (4).

Teraz spustite kód pomocou klávesovej skratky programu F5 programu Excel alebo manuálne. Získame rovnaký výsledok ako z predchádzajúceho kódu.

Príklad č

Stringové pole VBA s funkciami LBOUND a UBOUND

Ak nechcete zobraziť všetky zoznamy miest v jednej schránke správ, musíte zahrnúť slučky a definovať pre premenné ešte jednu premennú.

Teraz, aby sme zahrnuli slučku FOR NEXT, si nie sme istí, koľkokrát musíme spustiť kód. V takom prípade to môžeme rozhodnúť 5-krát, ale to nie je správny spôsob riešenia problému. A čo tak myšlienka automatického identifikátora dĺžky poľa na nižšej a vyššej úrovni ???

Keď otvoríme slučku FOR NEXT, dĺžku smyčky zvyčajne rozhodneme na 1 až 5 alebo 1 až 10 v závislosti od situácie. Namiesto manuálneho zadávania čísel použijeme funkciu LBOUND a UBOUND na automatické rozhodovanie o dolnej a hornej hodnote.

Pre LBound a Ubound som zadal názov poľa, tj. CityList. VBA LBound identifikuje dolnú hodnotu premennej poľa a funkcia VBA UBound identifikuje hornú hodnotu premennej poľa.

Teraz ukážte hodnotu v okne so správou, namiesto vloženia sériového čísla nechajte premennú slučky „k“, aby automaticky prevzala hodnotu poľa.

Kód:

Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Pre k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Ďalej k Koniec Sub

Okno so správou teraz zobrazí názov každého mesta osobitne.

Príklad č

Stringové pole VBA s funkciou rozdelenia

Teraz predpokladajme, že máte názvy miest, ako je uvedené nižšie.

Bangalúr; Bombaj; Kalkata; 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

Teraz hodnoty rozdelenia funkcií SPLIT tiež určujú najvyššiu dĺžku poľa.

Na čo treba pamätať

  • LBOUND a UBOUND sú funkcie na určenie dĺžok poľa.
  • Funkcia ARRAY môže obsahovať veľa hodnôt pre deklarovanú premennú.
  • Ak chcete raz použiť funkciu ARRAY, nerozhodujte o dĺžke poľa.

Zaujímavé články...