VBA jagas stringi massiiviks | Kuidas Exceli VBA-s stringi massiiviks jagada?
Exceli VBA jagatud string massiiviks
String on omavahel ühendatud märkide kogu, kui need märgid jagatakse ja salvestatakse muutujasse, muutub see muutuja nende märkide massiiviks ja meetod, mida kasutame stringi massiiviks jagamiseks, on funktsioon SPLIT vba, mis jagab stringi ühemõõtmelises stringis.
Nagu ka VBA töölehed, on ka meil funktsioonid stringi või teksti väärtustega tegelemiseks. Oleme väga hästi kursis stringitoimingutega, näiteks kuuse nime, perekonnanime, teise nime ekstraheerimisega jne. Kuidas oleks aga ideega jagada stringiväärtus massiivideks VBA-s? Jah, te kuulsite seda õigesti, saame stringilause jaotada massiiviks VBA kodeerimise abil ja selles spetsiaalses artiklis me näitame teile, kuidas jagada string massiiviks Exceli VBA-s.
Mis on jagatud string massiiviks?
Lubage mul kõigepealt seda selgitada: "String massiiviks" pole midagi muud kui "lause või stringi erinevad osad jagatakse mitmeks osaks". Näiteks kui lause on „Bangalore on Karnataka pealinn“, on iga sõna erinev massiiv.
Niisiis, kuidas see lause massiiviks jagada, on selle artikli teema.
Kuidas teisendada jagatud string massiiviks Exceli VBA-s?
Jagatud stringi teisendamiseks VBA massiiviks on meil funktsioon nimega “SPLIT”. See on VBA funktsioon, mis täidab tarnitud stringi väärtuse jagamise erinevateks osadeks, lähtudes eraldajast.
Näiteks kui lause on „Bangalore on Karnataka pealinn“, on iga sõna vahel eraldaja.
Allpool on funktsiooni SPLIT süntaks.
- Väärtus või avaldis: see on string või teksti väärtus, mille proovime massiiviks teisendada, eraldades stringi iga osa.
- [Piiraja]: see pole midagi muud kui tavalised asjad, mis eraldavad stringi iga sõna. Meie lauses “Bangalore on Karnataka pealinn” on iga sõna eraldatud tühikutega, nii et meie eraldaja on siin ruum.
- [Piir]: Piir pole midagi muud kui mitu osa me selle tulemusena tahame. Näiteks lauses "Bangalore on Karnataka pealinn" on meil seitse osa, kui vajame ainult kolme osa, siis saame esimese osa "Bangalore", teise osa "on" ja kolmanda osa ülejäänud osa lause st “pealinn Karnataka”.
- [Võrdle]: Seda ei kasutata 99% ajast, nii et ärgem puudutagem seda praegusel ajahetkel.
Näide 1
Ok, nüüd vaatame praktilisi näiteid.
1. samm: määrake stringi väärtuse hoidmiseks muutuja VBA.
Kood:
Sub String_To_Array () Dim StringValue String End Sub
2. samm: määrake selle muutuja jaoks string „Bangalore on Karnataka pealinn”.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnatka pealinn" End Sub
Samm 3: Järgmisena määrake veel üks muutuja, mis mahutab ülaltoodud stringi väärtuse iga osa. Selles osas peame meeles pidama, et kuna lauses on rohkem kui üks sõna, peame muutuja määratlema kui "Massiiv", et hoida rohkem kui ühte väärtust.
Sel juhul on meil stringis 7 sõna, nii et määrake massiiv järgmiselt.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnatka pealinn" Dim SingleValue () String End Sub
Selle massiivimuutuja jaoks kasutame funktsiooni SPLIT, et jagada string Exceli VBA massiiviks.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnataka pealinn" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub
Avaldis on meie stringi väärtus, st muutuja juba hoiab stringi väärtust, nii et sisestage ainult muutuja nimi.
Selle stringi eraldaja on tühik, nii et sisestage sama.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnataka pealinn" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub
Jätke funktsiooni SPLIT muud osad.
Funktsioon SPLIT jagas stringi väärtuse 7 tükiks, iga sõna on eraldatud tühikutähe arvelt. Kuna oleme deklareerinud muutuja “SingleValue” massiivina, saame sellele muutujale määrata kõik 7 väärtust.
Koodi saame kirjutada järgmiselt.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnataka pealinn" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub
Käivitage kood ja vaadake, mida saame sõnumikastist.
Praeguse seisuga näeme esimest sõna, st "Bangalore", et näidata täiendavaid sõnu, mille võime koodi kirjutada järgmiselt.
Kood:
Sub String_To_Array () Dim StringValue Stringina StringValue = "Bangalore on Karnataka pealinn" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub
Nüüd käivitage kood ja vaadake, mida me saame sõnumikastist.
Iga sõna on jaotatud massiivideks.
Näide 2
Kujutage nüüd ette olukorda, kus need väärtused salvestatakse lahtritesse, st iga sõna eraldi lahtrisse. Selleks peame VBA-sse lisama silmuse FOR NEXT.
Allolev kood sisestab iga sõna eraldi lahtritesse.
Sub String_To_Array1 () Dim StringValue Stringina StringValue = "Bangalore on Karnataka pealinn" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer K = 1 kuni 7 lahtrit (1, k) .Value = SingleValue (k - 1) Järgmine k End Sub
See sisestab iga sõna, nagu on näidatud alloleval pildil.
Asjad, mida meeles pidada
- Massiivi ja tsükleid kasutatakse koos koodi dünaamiliseks muutmiseks.
- Funktsioon SPLIT nõuab ühist eraldajat, mis eraldab lauses iga sõna.
- Massiivi pikkus algab nullist, mitte 1-st.