VBA-kielisarja | Kuinka julistaa ja alustaa merkkijono taulukko Excel VBA: ssa?

Excel VBA -merkkijono

VBA: ssa String array ei ole muuta kuin matriisimuuttuja, joka voi sisältää useamman kuin yhden merkkijonon arvon yhdellä muuttujalla.

Katso esimerkki alla olevasta VBA-koodista.

Koodi:

 Alimerkkijono_taulukko_esimerkki () Himmennä kaupunkilista (1–5) Vaihtoehtona kaupunkilista (1) = "Bangalore" kaupunkilista (2) = "Mumbai" kaupunkilista (3) = "Kolkata" kaupunkilista (4) = "Hyderabad" kaupunkilista (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

Yllä olevassa koodissa olen ilmoittanut taulukon muuttujaksi ja määrittänyt matriisin pituudeksi 1-5.

 Himmennä kaupunkilista (1–5) vaihtoehtona 

Tälle matriisimuuttujalle olen määrittänyt 5 kaupunkinimeä, joissa mainitaan suluissa jokainen taulukon määrä.

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

Seuraavaksi olen kirjoittanut koodin, joka näyttää nämä kaupunkien nimet viestiruutuun.

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

Kun suoritan tämän koodin, saamme viestiruudun, joka näyttää kaikki kaupunkien nimet yhdessä viestiruudussa.

Me kaikki tiedämme, että tämä on säästänyt niin paljon aikaa aikataulustamme poistamalla tehtävän yksilöidä muuttujat jokaiselle kaupungille. Yksi asia, joka sinun on kuitenkin opittava, on, että voimme silti pienentää merkkijonojen arvoille kirjoitettavan rivin koodia. Katsotaanpa, kuinka kirjoitamme koodia VBA-merkkijonoryhmille.

Esimerkkejä merkkijonojärjestelmästä Excel VBA: ssa

Alla on esimerkkejä excel vba -merkkijärjestelmästä.

Voit ladata tämän VBA String Array Excel -mallin täältä - VBA String Array Excel -malli

Esimerkki 1

Kuten olemme nähneet yllä olevasta koodista, voimme oppia, että muuttujaan voidaan tallentaa enemmän kuin yksi arvo määritetyn taulukon koon perusteella.

Nyt meidän ei tarvitse päättää taulukon pituutta hyvissä ajoin.

Koodi:

 Sub String_Array_Example1 () Himmennä CityList () Vaihtoehtona End Sub 

Kuten yllä olevasta sulkeista näet, en ole kirjoittanut pituuksia. Lisätään nyt tämän muuttujan arvot käyttämällä VBA ARRAY -toimintoa.

Siirrä taulukon sisällä arvot kaksoislainausmerkkeihin, joista kukin on erotettu pilkulla (,).

Koodi:

 Sub String_Array_Example () Himmennä CityList () Varianttina CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Loppuosa 

Säilytä nyt vanha koodi, jotta kaupunkien nimien tulos näkyy VBA: n viestiruudussa.

Koodi:

 Alamerkkijono_Array_esimerkki1 () Himmennä kaupunkilista () Varianttina CityList = Taulukko ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub 

Yksi muutoksista, jonka olen tehnyt yllä olevaan koodiin, on, koska emme ole päättäneet matriisimuuttujan alarajaa ja ylärajaa ja olemme käyttäneet ARRAY-funktiota matriisien määrä alkaa 0: sta eikä 1: stä.

Joten tästä syystä olemme maininneet arvot CityList (0), ClityList (1), CityList (2), CityList (3) ja CityList (4).

Suorita koodi nyt Excel-pikanäppäimen F5 kautta tai manuaalisesti, saamme saman tuloksen kuin saamme edellisestä koodista.

Esimerkki 2

VBA-kielisarja LBOUND- ja UBOUND-toiminnoilla

Jos et halua näyttää kaikkia kaupunkiluetteloita yhdessä viestiruudussa, sinun on lisättävä silmukoita, määritä yksi muuttuja silmukoille.

Nyt NEXT-silmukan sisällyttämiseksi emme ole varmoja siitä, kuinka monta kertaa meidän on suoritettava koodi, tässä tapauksessa voimme päättää siitä kuin viisi kertaa, mutta se ei ole oikea tapa lähestyä ongelmaa. Joten entä ajatus automaattisesta matalamman ja ylemmän matriisin pituuden tunnisteesta ???

Kun avaat FOR NEXT -silmukan, päätämme silmukan pituudeksi yleensä 1-5 tai 1-10 tilanteen mukaan. Sen sijaan, että kirjoittaisit numeroita manuaalisesti, käytämme LBOUND- ja UBOUND-toimintoja päättääksesi alemman ja ylemmän arvon automaattisesti.

LBoundille ja Uboundille olen toimittanut taulukon nimen eli CityList. VBA LBound tunnistaa matriisimuuttujan alemman arvon ja VBA UBound-funktio matriisimuuttujan ylemmän arvon.

Näytä nyt arvo viestiruudussa, sen sijaan että syötät sarjanumeron, anna silmukkamuuttujan "k" ottaa matriisin arvo automaattisesti.

Koodi:

 Alimerkkijono_Array_esimerkki1 () Himmennä kaupunkilista () Vaihtoehtona Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") k = LBound (CityList) UBound (CityList) MsgBox CityList (k) Seuraava k End Sub 

Nyt viestiruudussa näkyy kunkin kaupungin nimi erikseen.

Esimerkki 3

VBA-merkkijonoryhmä jaetulla toiminnolla

Oletetaan, että sinulla on alla olevien kaltaisia ​​kaupunkien nimiä.

Bangalore; Mumbai; Kolkata; Hydrabad; Orissa

Tällöin kaikki kaupungit yhdistetään yhdessä kunkin kaupungin erottavan kaksoispisteen kanssa. Tällaisissa tapauksissa meidän on käytettävä SPLIT-toimintoa erottamaan kukin kaupunki.

Anna Expressionille kaupunkiluettelo.

Koodi:

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

Seuraava argumentti on ”erotin” eli mikä on yksi merkki, joka erottaa jokaisen kaupungin muista kaupungeista, tässä tapauksessa ”Colon”.

Koodi:

 Alimerkkijono_taulukko_esimerkki2 () Himmennä kaupunkilista () merkkijonona Dim k As kokonaisluku Kaupunkilista = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") K = LBound (CityList) UBound (CityList) MsgBox CityList (k ) Seuraava k End Sub 

Nyt SPLIT-funktion jakoarvot määrittävät myös korkeimman matriisin pituuden.

Muistettavaa

  • LBOUND ja UBOUND ovat funktioita taulukon pituuksien määrittämiseksi.
  • ARRAY-toiminto voi sisältää useita ilmoitetun muuttujan arvoja.
  • Kerran, jos haluat käyttää ARRAY-toimintoa, älä määritä taulukon pituutta.

$config[zx-auto] not found$config[zx-overlay] not found