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

Sisällysluettelo

Excel VBA -merkkijono

VBA: ssa String-matriisi ei ole muuta kuin matriisimuuttuja, johon mahtuu useampi kuin yksi merkkijonoarvo yhdellä muuttujalla.

Katso esimerkiksi alla olevaa VBA-koodia.

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ä mainitsemalla suluissa olevat taulukot.

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, miten kirjoitamme koodia VBA-merkkijonoryhmille.

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

Alla on esimerkkejä Excelin VBA-merkkijonoryhmästä.

Esimerkki 1

Kuten olemme nähneet yllä olevasta koodista, opimme, että voimme tallentaa muuttujaan useita arvoja 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älle muuttujalle arvot käyttämällä VBA ARRAY -toimintoa.

Taulukon sisällä välitetään arvot kaksoislainausmerkeissä, joista kukin on erotettu pilkulla (,).

Koodi:

Alimerkkijono_taulukko_esimerkki () Himmennä kaupunkilista () Varianttina Kaupunkilista = Matriisi ("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 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ääritettävä yksi muuttuja silmukoille.

Lisäämällä FOR NEXT -silmukka, emme ole varmoja 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 korkeamman 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 viestikentässä, sen sijaan että syötät sarjanumeron, anna silmukkamuuttujan "k" ottaa matriisin arvo automaattisesti.

Koodi:

Sub String_Array_Example1 () 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

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

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.

Mielenkiintoisia artikkeleita...