Cum să împărțiți un șir de caractere într-o matrice în VBA (3 moduri)

  • Imparte Asta
Hugh West

Î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.xlsm

3 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.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.