Sommario
In questo articolo, vi mostrerò come è possibile dividere una stringa in un array in VBA . Dividere è una delle funzioni più importanti e diffuse che utilizziamo in VBA Imparerete a dividere una stringa in VBA in tutti i modi possibili.
Funzione Split di VBA (visualizzazione rapida)
=Split(Expression As String, [Delimiter], [Limit As Long=1], [CompareAsVbCompareMethod=vbBinaryCompare])
Scarica il quaderno di esercizi
Dividere una stringa in una matrice.xlsm3 modi per dividere una stringa in una matrice in VBA
Prendiamo in mano una corda "Abbiamo richiesto i visti di Stati Uniti, Canada, Australia e Francia". .
Vi mostrerò come potete dividere questa stringa in un array in tutti i modi possibili, utilizzando il metodo Funzione Split di VBA .
1. Utilizzare qualsiasi delimitatore per dividere una stringa in una matrice in VBA
È possibile utilizzare qualsiasi stringa come delimitatore per dividere una stringa in un array in VBA .
Può essere un spazio (" ") , a virgola (",") , a punto e virgola (":") un singolo carattere, una stringa di caratteri o qualsiasi altra cosa.
⧭ Esempio 1:
Dividiamo la stringa usando il metodo virgola come delimitatore.
La riga di codice sarà:
Arr = Split(Testo, ",")
L'opera completa Codice VBA sarà:
⧭ Codice VBA:
Sub Split_String() Text = "Abbiamo richiesto il visto per Stati Uniti, Canada, Australia e Francia" Arr = Split(Text, ",") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Uscita:
Divide la stringa in un array composto da {"Abbiamo richiesto il visto per gli Stati Uniti", "Canada", "Australia", "Francia"}.
⧭ Esempio 2:
Si può anche utilizzare un spazio (" ") come delimitatore.
La riga di codice sarà:
Arr = Split(Testo, " ")
L'opera completa Codice VBA sarà:
⧭ Codice VBA:
Sub Split_String() Text = "Abbiamo richiesto il visto per Stati Uniti, Canada, Australia e Francia" Arr = Split(Text, " ") Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Uscita:
Divide la stringa in un array composto da {"Noi", "applicato", "per", "il", "visto", "di", "Stati Uniti", "Canada", "Australia", "Francia"}.
⧭ Cose da ricordare:
- Il delimitatore predefinito è un spazio (" ") .
- Cioè, se non si inserisce alcun delimitatore, verrà usato un spazio come delimitatore.
Per saperne di più: Dividere una stringa per carattere in Excel (6 modi adatti)
Letture simili:
- Dividere il testo in più celle in Excel
- VBA per ottenere valori unici da una colonna in una matrice in Excel (3 criteri)
- Excel VBA: come filtrare con più criteri in una matrice (7 modi)
2. Dividere una stringa in una matrice con un numero qualsiasi di elementi
È possibile dividere una stringa in un array con un numero qualsiasi di elementi, a seconda delle proprie esigenze.
Inserite il numero di elementi come 3a dell'argomento Funzione Split .
⧭ Esempio:
Dividiamo la stringa nella prima 3 elementi con un spazio come delimitatore.
La riga di codice sarà:
Arr = Split(Testo, " ", 3)
E il Codice VBA sarà:
⧭ Codice VBA:
Sub Split_String() Text = "Abbiamo richiesto il visto per Stati Uniti, Canada, Australia e Francia" Arr = Split(Text, " ", 3) Output = "" For i = 0 To UBound(Arr) Output = Output + vbNewLine + vbNewLine + Arr(i) Next i MsgBox Output End Sub
⧭ Uscita:
Dividerà la stringa in un array composto dai primi elementi di 3 separati dal delimitatore spazio .
⧭ Cose da ricordare:
- L'argomento predefinito è -1 .
- Ciò significa che, se non si inserisce l'argomento, dividerà la stringa nel numero massimo di volte possibile.
Per saperne di più: Come dividere una stringa per lunghezza in Excel (8 modi)
3. Usare un delimitatore sensibile alle maiuscole e insensibile per dividere una stringa e un array in VBA
Il Funzione Split offre la possibilità di utilizzare sia un sensibile alle maiuscole e alle minuscole e senza distinzione tra maiuscole e minuscole delimitatore.
Per un senza distinzione tra maiuscole e minuscole inserire il delimitatore 4a argomento come 1.
E per un senza distinzione tra maiuscole e minuscole inserire il delimitatore 4a argomento come 0 .
⧭ Esempio 1: Delimitatore sensibile alle maiuscole e alle minuscole
Nella stringa data, consideriamo il testo "PER" come delimitatore e 2 come numero totale di elementi dell'array.
Ora, per un senza distinzione tra maiuscole e minuscole caso, la riga di codice sarà:
Arr = Split(Text, "FOR ", 3,1)
E il completo Codice VBA sarà:
⧭ Codice VBA:
Sub Split_String() Text = "Abbiamo richiesto il visto per Stati Uniti, Canada, Australia e Francia" 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
⧭ Uscita:
Poiché il delimitatore è senza distinzione tra maiuscole e minuscole qui, il "PER" funzionerà come "per" e dividerà la stringa in un array di due elementi.
⧭ Esempio 2: Delimitatore sensibile alle maiuscole e alle minuscole
Anche in questo caso, per un sensibile alle maiuscole e alle minuscole caso, la riga di codice sarà:
Arr = Split(Text, "FOR ", 3,0)
E il completo Codice VBA sarà:
⧭ Codice VBA:
Sub Split_String() Text = "Abbiamo richiesto il visto per Stati Uniti, Canada, Australia e Francia" 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
⧭ Uscita:
Poiché il delimitatore è sensibile alle maiuscole e alle minuscole qui, il "PER" non sarà come "per" e non dividerà la stringa in un array di due elementi.
Per saperne di più: Excel VBA: rimuovere i duplicati da una matrice (2 esempi)
⧭ Cose da ricordare:
- Il valore predefinito dell'argomento è 0 .
- Cioè, se non si mette il valore dell'elemento 4a funzionerà per un oggetto sensibile alle maiuscole e alle minuscole partita.
Conclusione
Pertanto, utilizzando questi metodi, è possibile utilizzare il metodo Funzione Split di VBA per dividere una stringa in un array di elementi. Avete domande? Non esitate a chiederci.