VBA jagas stringi massiiviks - Kuidas Exceli VBA-s stringi massiiviks jagada?

Lang L: none (table-of-contents)

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 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 stringiväärtuse jagamise erinevateks osadeks, lähtudes eraldajast.

Näiteks kui lause on „Bangalore on Karnataka pealinn”, on iga sõna vahel eraldaja tühik.

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 kosmosemärgiga, 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, seega ä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 kõiki osi. Siinkohal 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 praegusest hetkest funktsiooni SPLIT muud osad.

Funktsioon SPLIT jagas stringi väärtuse 7 tükiks, iga sõna eraldati tühikutähe arvelt. Kuna oleme deklareerinud muutuja “SingleValue” massiivina, saame sellele muutujale omistada 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". Järgmiste sõnade kuvamiseks 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

Now run the code and see what we get in the message box.

Each and every word has been split into arrays.

Example #2

Now imagine a situation of storing these values to cells i.e., each word into a separate cell. For this, we need to include the FOR NEXT loop in VBA.

The below code will insert each word into separate cells.

Sub String_To_Array1() Dim StringValue As String StringValue = "Bangalore is the capital city of Karnataka" Dim SingleValue() As String SingleValue = Split(StringValue, " ") Dim k As Integer For k = 1 To 7 Cells(1, k).Value = SingleValue(k - 1) Next k End Sub

This will insert each word, as shown in the below image.

Things to Remember

  • Array and loops are used together to make the code dynamic.
  • The SPLIT function requires common delimiter, which separates each word in the sentence.
  • Massiivi pikkus algab nullist, mitte 1-st.

Huvitavad Artiklid...