VBA String Array

Matrice di stringhe VBA di Excel

In VBA, l'array di stringhe non è altro che una variabile di array che può contenere più di un valore di stringa con una singola variabile.

Per un esempio, guarda il codice VBA sottostante.

Codice:

 Sub String_Array_Example () Dim CityList (da 1 a 5) As Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

Nel codice sopra, ho dichiarato come variabile di array e ho assegnato la lunghezza di un array da 1 a 5.

 Dim CityList (da 1 a 5) come variante 

Per questa variabile di array, ho assegnato 5 nomi di città che menzionano ogni numero di array tra parentesi.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Successivamente, ho scritto un codice per mostrare questi nomi di città nella finestra del messaggio.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Quando eseguo questo codice, verrà visualizzata una finestra di messaggio che mostra tutti i nomi di città in una singola finestra di messaggio.

Sappiamo tutti che questo ha risparmiato così tanto tempo dal nostro programma eliminando il compito di dichiarare variabili individuali per ogni città. Tuttavia, un'altra cosa che devi imparare è che possiamo ancora ridurre il codice di riga che scriviamo per i valori di stringa. Diamo un'occhiata a come scriviamo il codice per gli array di stringhe VBA.

Esempi di array di stringhe in Excel VBA

Di seguito sono riportati gli esempi di un array di stringhe vba excel.

Puoi scaricare questo modello Excel per array di stringhe VBA qui - Modello Excel per array di stringhe VBA

Esempio 1

Come abbiamo visto nel codice precedente, abbiamo appreso che possiamo memorizzare più di un valore nella variabile in base alla dimensione dell'array determinata.

Ora quello che dobbiamo fare è non decidere la lunghezza dell'array con largo anticipo.

Codice:

 Sub String_Array_Example1 () Dim CityList () As Variant End Sub 

Come puoi vedere sopra tra parentesi non ho scritto alcuna lunghezza. Ora per questa variabile inseriamo i valori utilizzando la funzione VBA ARRAY.

All'interno dell'array passare i valori tra virgolette doppie ciascuna separata da una virgola (,).

Codice:

 Sub String_Array_Example () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub 

Ora mantieni il vecchio codice per mostrare il risultato dei nomi di città nella finestra del messaggio in VBA.

Codice:

 Sub String_Array_Example1 () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub 

Una modifica che ho apportato al codice sopra è poiché non abbiamo deciso il limite inferiore e il limite superiore di una variabile di array e abbiamo usato il conteggio dell'array della funzione ARRAY inizierà da 0 e non da 1.

Quindi, questo è il motivo per cui abbiamo menzionato i valori come CityList (0), ClityList (1), CityList (2), CityList (3) e CityList (4).

Ora esegui il codice tramite il tasto di scelta rapida Excel F5 o manualmente, otteniamo lo stesso risultato che otteniamo dal codice precedente.

Esempio n. 2

VBA String Array con funzioni LBOUND e UBOUND

Nel caso in cui, se non si desidera visualizzare tutto l'elenco delle città in un'unica finestra di messaggio, è necessario includere i loop, definire un'altra variabile per i loop.

Ora per includere il ciclo FOR NEXT non siamo sicuri di quante volte dobbiamo eseguire il codice, in questo caso, possiamo decidere come 5 volte ma non è il modo giusto per affrontare il problema. Allora che ne dici dell'idea di un identificatore automatico della lunghezza dell'array di livello inferiore e superiore ???

Quando apriamo il ciclo FOR NEXT di solito decidiamo la lunghezza del loop da 1 a 5 o da 1 a 10 a seconda della situazione. Invece di inserire i numeri manualmente, usiamo le funzioni LBOUND e UBOUND per decidere automaticamente il valore inferiore e quello superiore.

Per LBound e Ubound ho fornito il nome dell'array, ad esempio CityList. VBA LBound identifica il valore inferiore della variabile di matrice e la funzione VBA UBound identifica il valore superiore della variabile di matrice.

Ora mostra il valore nella finestra del messaggio, invece di inserire il numero di serie lascia che la variabile di loop "k" prenda automaticamente il valore dell'array.

Codice:

 Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") Per k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sub 

Ora la finestra di messaggio mostrerà ogni nome di città separatamente.

Esempio n. 3

VBA String Array con funzione Split

Ora supponi di avere nomi di città come quelli sotto.

Bangalore; Mumbai; Calcutta; Hydrabad; Orissa

In questo caso, tutte le città vengono combinate insieme ai due punti che separano ciascuna città. In questi casi, è necessario utilizzare la funzione SPLIT per separare ogni città.

Per Expression fornire l'elenco delle città.

Codice:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sub 

L'argomento successivo è "Delimitatore", ovvero qual è il carattere che separa ogni città dalle altre città, in questo caso "Due punti".

Codice:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k ) Avanti k End Sub 

Ora i valori di divisione della funzione SPLIT determinano anche la lunghezza massima dell'array.

Cose da ricordare

  • LBOUND e UBOUND sono funzioni per determinare le lunghezze dell'array.
  • La funzione ARRAY può contenere molti valori per una variabile dichiarata.
  • Una volta, se si desidera utilizzare la funzione ARRAY, non decidere la lunghezza dell'array.