Cuprins
În acest articol, vă voi arăta cum puteți împărți un șir de caractere într-un array în VBA . Split este una dintre cele mai importante și utilizate funcții pe scară largă pe care le folosim în VBA Veți învăța să împărțiți un șir de caractere în VBA în toate tipurile de moduri posibile.
Funcția VBA Split (Vizualizare rapidă)
=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])
Descărcați caietul de practică
Împărțiți un șir de caractere într-o matrice.xlsm3 moduri de a împărți un șir de caractere într-o matrice în VBA
Să avem o sfoară în mână "Am aplicat pentru viză în SUA, Canada, Australia și Franța." .
Vă voi arăta cum puteți împărți acest șir de caractere într-un array în toate tipurile de moduri posibile, folosind Funcția de divizare de VBA .
1. Folosiți orice delimitator pentru a împărți un șir de caractere într-o matrice în VBA
Puteți utiliza orice șir de caractere ca delimitator pentru a împărți un șir de caractere într-un array în VBA .
Poate fi un spațiu (" ") , a virgulă (",") , a punct și virgulă (":") , un singur caracter, un șir de caractere sau orice altceva.
⧭ Exemplul 1:
Să împărțim șirul folosind virgulă ca delimitator.
Linia de cod va fi:
Arr = Split(Text, ",")
Complet Cod VBA va fi:
⧭ Cod VBA:
Sub Split_String_String() Text = "Am aplicat pentru viză pentru SUA, Canada, Australia și Franța." Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Ieșire:
Acesta va împărți șirul de caractere într-un array format din {"Am aplicat pentru viza de SUA", "Canada", "Australia", "Franța"}.
⧭ Exemplul 2:
De asemenea, puteți utiliza un spațiu (" ") ca delimitator.
Linia de cod va fi:
Arr = Split(Text, " ")
Complet Cod VBA va fi:
⧭ Cod VBA:
Sub Split_String_String() Text = "Am aplicat pentru viză pentru SUA, Canada, Australia și Franța." Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Ieșire:
Acesta va împărți șirul de caractere într-un array format din {"Noi", "aplicat", "pentru", "pentru", "viza", "de", "SUA", "Canada", "Australia", "Franța"}.
⧭ Lucruri de reținut:
- Delimitatorul implicit este un spațiu (" ") .
- Adică, dacă nu inserați niciun delimitator, se va folosi un spațiu ca delimitator.
Citește mai mult: Împărțiți șirul de caractere în Excel (6 moduri adecvate)
Lecturi similare:
- Împărțirea textului în mai multe celule în Excel
- VBA pentru a obține valori unice din coloană în matrice în Excel (3 criterii)
- Excel VBA: Cum se filtrează cu mai multe criterii în matrice (7 moduri)
2. Împărțiți un șir de caractere într-o matrice cu orice număr de elemente
Puteți împărți un șir de caractere într-un tablou cu orice număr de elemente, în funcție de dorința dumneavoastră.
Introduceți numărul de elemente ca număr de 3. argument al Funcția de divizare .
⧭ Exemplu:
Să împărțim șirul în prima 3 elemente cu un spațiu ca delimitator.
Linia de cod va fi:
Arr = Split(Text, " ", 3)
Și Cod VBA va fi:
⧭ Cod VBA:
Sub Split_String_String() Text = "Am aplicat pentru viză pentru SUA, Canada, Australia și Franța." Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Ieșire:
Acesta va împărți șirul de caractere într-o matrice formată din primul 3 elemente separate prin delimitatorul spațiu .
⧭ Lucruri de reținut:
- Argumentul implicit este -1 .
- Aceasta înseamnă că, dacă nu introduceți argumentul, va împărți șirul de caractere în numărul maxim de ori posibil.
Citește mai mult: Cum să împărțiți șirul de caractere în funcție de lungime în Excel (8 moduri)
3. Utilizați atât delimitatorul sensibil la majuscule, cât și cel insensibil la majuscule și minuscule pentru a împărți un șir de caractere într-o matrice în VBA
The Funcția de divizare vă oferă posibilitatea de a utiliza atât un Sensibil la majuscule și minuscule și nu ține cont de majuscule și minuscule delimitator.
Pentru un nu ține cont de majuscule și minuscule delimitator, introduceți 4. argument ca 1.
Și pentru un nu ține cont de majuscule și minuscule delimitator, introduceți 4. argument ca 0 .
⧭ Exemplul 1: Delimitator care nu ține cont de majuscule și minuscule
În șirul dat, să luăm în considerare textul "PENTRU" ca delimitator și 2 ca fiind numărul total de elemente ale tabloului.
Acum, pentru un nu ține cont de majuscule și minuscule caz, linia de cod va fi:
Arr = Split(Text, "FOR ", 3,1)
Și complet Cod VBA va fi:
⧭ Cod VBA:
Sub Split_String_String() Text = "Am aplicat pentru viză pentru SUA, Canada, Australia și Franța." Arr = Split(Text, "FOR", 2, 1) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Ieșire:
Deoarece delimitatorul este nu ține cont de majuscule și minuscule aici, în "PENTRU" va funcționa ca "pentru" și va împărți șirul de caractere într-o matrice de două elemente.
⧭ Exemplul 2: Delimitator sensibil la majuscule și minuscule
Din nou, pentru un Sensibil la majuscule și minuscule caz, linia de cod va fi:
Arr = Split(Text, "FOR ", 3,0)
Și complet Cod VBA va fi:
⧭ Cod VBA:
Sub Split_String_String() Text = "Am aplicat pentru viză pentru SUA, Canada, Australia și Franța." Arr = Split(Text, "FOR", 2, 0) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Ieșire:
Deoarece delimitatorul este Sensibil la majuscule și minuscule aici, în "PENTRU" nu va ca "pentru" și nu va împărți șirul de caractere într-o matrice de două elemente.
Citește mai mult: Excel VBA: Eliminarea duplicatelor dintr-o matrice (2 exemple)
⧭ Lucruri de reținut:
- Valoarea implicită a argumentului este 0 .
- Adică, dacă nu se pune valoarea de 4. va funcționa pentru un argument Sensibil la majuscule și minuscule meci.
Concluzie
Prin urmare, folosind aceste metode, puteți folosi Funcția de divizare de VBA pentru a împărți un șir de caractere într-o matrice de elemente. Dacă aveți întrebări, nu ezitați să ne întrebați.