VBA stringide massiiv | Kuidas deklareerida ja vormindada stringimassiiv Exceli VBA-s?

Exceli VBA stringide massiiv

VBA-s pole stringimassiiv muud kui massiivimuutuja, mis mahutab ühe muutujaga rohkem kui ühe stringi väärtuse.

Näite saamiseks vaadake allpool olevat VBA-koodi.

Kood:

 Alamstring_Array_Näide () Dim CityList (1 kuni 5) Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissaare" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

Ülaltoodud koodis olen deklareerinud massiivi muutujana ja määranud massiivi pikkuseks 1 kuni 5.

 Hämardada CityList (1 kuni 5) variandina 

Selle massiivimuutuja jaoks olen määranud 5 linnanime, mainides sulgudes iga massiivi arvu.

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

Järgmisena olen kirjutanud koodi nende linnanimede kuvamiseks sõnumikasti.

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

Kui ma selle koodi käivitan, saame kirjakasti, mis näitab kõiki linnanimesid ühes sõnumikastis.

Me kõik teame, et see on meie ajakavast nii palju aega kokku hoidnud, kui kaotate ülesande deklareerida iga linna individuaalsed muutujad. Kuid veel üks asi, mida peate õppima, on see, et saame ikkagi vähendada stringi väärtuste jaoks kirjutatava rea ​​koodi. Vaatame, kuidas kirjutame VBA stringimassiividele koodi.

Stringimassiivi näited Exceli VBA-s

Allpool on toodud Exceli vba stringide massiivi näited.

Selle VBA String Array Exceli malli saate alla laadida siit - VBA String Array Exceli mall

Näide 1

Nagu nägime ülaltoodud koodist, saame teada, et kindlaksmääratud massiivi suuruse põhjal saab muutujasse salvestada rohkem kui ühe väärtuse.

Nüüd peame massiivi pikkust mitte aegsasti otsustama.

Kood:

 Alamstring_Array_näide1 () Dim CityList () Variant End Sub 

Nagu ülevalt sulgude alt näha, pole ma ühtegi pikkust kirjutanud. Lisame selle muutuja jaoks väärtused funktsiooni VBA ARRAY abil.

Massiivi sees edastage väärtused topelt jutumärkides, eraldatuna koma (,).

Kood:

 Sub String_Array_Example () Dim CityList () Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Lõpp-alam 

Hoidke nüüd vana kood, et näidata linnanimede tulemust VBA teatekastis.

Kood:

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

Üks muudatus ülaltoodud koodis on see, et kuna me ei ole otsustanud massiivi muutuja alumist ja ülemist piiri ning oleme kasutanud funktsiooni ARRAY massiivi arv algab 0-st mitte 1-st.

Nii et seetõttu oleme maininud väärtusi CityList (0), ClityList (1), CityList (2), CityList (3) ja CityList (4).

Nüüd käivitage kood Exceli otseteeklahvi F5 kaudu või käsitsi, saame sama tulemuse nagu eelmisest koodist.

Näide 2

VBA stringide massiiv funktsioonidega LBOUND ja UBOUND

Kui te ei soovi kogu linnaloendit kuvada ühes sõnumikastis, peate lisama silmused, määrake silmuste jaoks veel üks muutuja.

Nüüd, kui kaasata FOR NEXT tsükkel, pole me kindel, mitu korda peame koodi käivitama. Sel juhul võime selle otsustada nagu viis korda, kuid see pole õige viis probleemile läheneda. Kuidas oleks siis idee massiivi automaatse madalama ja kõrgema taseme identifikaatoriga ???

Kui avame JÄRGMISE silmuse, otsustame selle pikkuseks tavaliselt 1 kuni 5 või 1 kuni 10, sõltuvalt olukorrast. Numbrite käsitsi sisestamise asemel kasutame funktsiooni LBOUND ja UBOUND, et otsustada madalama ja ülemise väärtuse üle automaatselt.

LBoundi ja Uboundi jaoks olen esitanud massiivi nime, st CityList. VBA LBound tuvastab massiivi muutuja alumise väärtuse ja VBA UBound funktsioon massiivi muutuja ülemise väärtuse.

Näidake nüüd väärtust sõnumikastis, seerianumbri sisestamise asemel laske silmusmuutujal „k” massiiviväärtus automaatselt võtta.

Kood:

 Alamstring_Array_Näide1 () Dim CityList () Variandina Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") k = LBound (CityList) kuni UBound (CityList) MsgBox CityList (k) Järgmine k End Sub 

Nüüd kuvatakse sõnumikastis iga linna nimi eraldi.

Näide # 3

Jagatud funktsiooniga VBA stringide massiiv

Oletame, et teil on alljärgnevad linnanimed.

Bangalore; Mumbai; Kolkata; Hydrabad; Orissa

Sellisel juhul on kõik linnad ühendatud iga linna eraldava jämesoolega. Sellistel juhtudel peame iga linna eraldamiseks kasutama funktsiooni SPLIT.

Expressioni jaoks sisestage linnade nimekiri.

Kood:

 Alamstring_Array_Näide2 () Dim CityList () stringina Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", k = LBound (CityList) kuni UBound (CityList) MsgBox CityList (k) Järgmine k lõpp Alam 

Järgmine argument on “piiritleja”, st mis on üks märk, mis eraldab iga linna teistest linnadest, antud juhul “koolon”.

Kood:

 Alamstring_Array_Näide2 () Dim CityList () stringina Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") k = LBound (CityList) UBound (CityList) MsgBox CityList (k ) Järgmine k End Sub 

Nüüd määravad funktsiooni SPLIT jagatud väärtused ka massiivi suurima pikkuse.

Asjad, mida meeles pidada

  • LBOUND ja UBOUND on funktsioonid massiivi pikkuste määramiseks.
  • Funktsioon ARRAY mahutab deklareeritud muutuja jaoks palju väärtusi.
  • Kui soovite kasutada funktsiooni ARRAY, ärge otsustage massiivi pikkust.