Come dividere una stringa in una matrice in VBA (3 modi)

  • Condividi Questo
Hugh West

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

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

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.