VBA Split String in Array

Excel VBA Split String in Array

Una stringa è una raccolta di caratteri uniti insieme, quando questi caratteri vengono divisi e memorizzati in una variabile, quella variabile diventa un array per questi caratteri e il metodo che usiamo per dividere una stringa da trasformare in un array è usando la funzione SPLIT in vba che divide la stringa in una stringa unidimensionale.

Come i fogli di lavoro anche in VBA, abbiamo funzioni per gestire valori String o Text. Abbiamo molta familiarità con le operazioni sulle stringhe come l'estrazione del primo nome, cognome, secondo nome, ecc. Ma che ne dici dell'idea di dividere il valore della stringa in array in VBA? Sì, hai sentito che è corretto, possiamo dividere la frase della stringa in un array usando la codifica VBA e in questo articolo speciale ti mostreremo come dividere la stringa in un array in Excel VBA.

Cos'è Split String in un array?

Vorrei chiarire prima questo, "String into Array" non è altro che "diverse parti della frase o della stringa verranno divise in più parti". Ad esempio, se la frase è "Bangalore è la capitale del Karnataka", ogni parola è un array diverso.

Quindi, come dividere questa frase nell'array è l'argomento di questo articolo.

Come convertire la stringa divisa in una matrice in Excel VBA?

Per convertire la stringa divisa in un array in VBA abbiamo una funzione chiamata "SPLIT". Questa è una funzione VBA che esegue il compito di suddividere il valore della stringa fornito in parti diverse in base al delimitatore fornito.

Ad esempio, se la frase è "Bangalore è la capitale del Karnataka", lo spazio è il delimitatore tra ogni parola.

Di seguito è riportata la sintassi della funzione SPLIT.

  • Valore o espressione: questa è la stringa o il valore di testo che stiamo tentando di convertire nell'array separando ogni parte della stringa.
  • [Delimitatore]: questo non è altro che le cose comuni che separano ogni parola nella stringa. Nella nostra frase "Bangalore è la capitale del Karnataka" ogni parola è separata da uno spazio, quindi il nostro delimitatore è spazio qui.
  • [Limite]: Il limite non è altro che il numero di parti che vogliamo come risultato. Per un esempio nella frase "Bangalore è la capitale del Karnataka" abbiamo sette parti se abbiamo bisogno solo di tre parti allora otterremo la prima parte come "Bangalore", la seconda parte come "è" e la terza parte come resto di la frase vale a dire "la capitale del Karnataka".
  • [Confronta]: non viene utilizzato il 99% delle volte, quindi non tocchiamolo a questo punto.
Puoi scaricare questo VBA Split String in Array Excel Template qui - VBA Split String in Array Excel Template

Esempio 1

Ok, ora vediamo esempi pratici.

Passaggio 1: definire la variabile VBA per contenere il valore della stringa.

Codice:

 Sub String_To_Array () Dim StringValue As String End Sub 

Passaggio 2: per questa variabile assegnare la stringa "Bangalore è la capitale del Karnataka".

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnatka" End Sub 

Passaggio 3: Successivamente definire un'altra variabile che può contenere ciascuna parte del valore di stringa precedente. Su questo dobbiamo tenere presente che poiché la frase ha più di una parola, dobbiamo definire la variabile come "Array" per contenere più di un valore.

In questo caso, abbiamo 7 parole nella stringa, quindi definisci l'array come segue.

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnatka" Dim SingleValue () As String End Sub 

Ora per questa variabile di matrice, useremo la funzione SPLIT per dividere la stringa in un array in Excel VBA.

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

L'espressione è il nostro valore stringa, ovvero la variabile contiene già il valore stringa, quindi inserisci solo il nome della variabile.

Il delimitatore in questa stringa è il carattere spazio, quindi fornire lo stesso.

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

A partire da ora lascia altre parti della funzione SPLIT.

La funzione SPLIT divide il valore della stringa in 7 parti ciascuna parola segregata a scapito del carattere spazio. Poiché abbiamo dichiarato la variabile "SingleValue" come array, possiamo assegnare tutti i 7 valori a questa variabile.

Possiamo scrivere il codice come segue.

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Esegui il codice e guarda cosa otteniamo nella finestra del messaggio.

A partire da ora, possiamo vedere la prima parola cioè "Bangalore" per mostrare ulteriori parole possiamo scrivere il codice come segue.

Codice:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnataka" 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 

Ora esegui il codice e guarda cosa otteniamo nella finestra del messaggio.

Ogni parola è stata suddivisa in array.

Esempio n. 2

Ora immagina una situazione in cui memorizzi questi valori nelle celle, cioè ogni parola in una cella separata. Per questo, dobbiamo includere il ciclo FOR NEXT in VBA.

Il codice seguente inserirà ogni parola in celle separate.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore è la capitale del Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer For k = da 1 a 7 celle (1, k) .Value = SingleValue (k - 1) Next k End Sub 

Questo inserirà ogni parola come mostrato nell'immagine sottostante.

Cose da ricordare

  • Array e loop vengono utilizzati insieme per rendere dinamico il codice.
  • La funzione SPLIT richiede un delimitatore comune che separa ogni parola nella frase.
  • La lunghezza dell'array inizia da zero, non da 1.