Excel VBA Split String in Array
Una stringa è una raccolta di caratteri uniti insieme, quando questi caratteri sono 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. Conosciamo molto bene le operazioni sulle stringhe come l'estrazione del primo nome, cognome, secondo nome, ecc. Ma che ne dici dell'idea di suddividere 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 suddivise 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 cercando 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 quante parti 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 cioè "la capitale del Karnataka".
- (Confronta): questo non viene utilizzato il 99% delle volte, quindi non tocchiamolo in questo momento.
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 assegna 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 di stringa, cioè la variabile contiene già il valore di 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 le 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
Now run the code and see what we get in the message box.

Each and every word has been split into arrays.
Example #2
Now imagine a situation of storing these values to cells i.e., each word into a separate cell. For this, we need to include the FOR NEXT loop in VBA.
The below code will insert each word into separate cells.
Sub String_To_Array1() Dim StringValue As String StringValue = "Bangalore is the capital city of Karnataka" Dim SingleValue() As String SingleValue = Split(StringValue, " ") Dim k As Integer For k = 1 To 7 Cells(1, k).Value = SingleValue(k - 1) Next k End Sub
This will insert each word, as shown in the below image.

Things to Remember
- Array and loops are used together to make the code dynamic.
- The SPLIT function requires common delimiter, which separates each word in the sentence.
- La lunghezza dell'array inizia da zero, non da 1.