Array di stringhe VBA - Come dichiarare e inizializzare la matrice di stringhe in Excel VBA?

Matrice di stringhe VBA di Excel

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

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

Esempio 1

Come abbiamo visto nel codice precedente, abbiamo appreso che potremmo 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 ARRAY VBA.

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 precedente è poiché non abbiamo deciso il limite inferiore e il limite superiore di una variabile di matrice e abbiamo utilizzato il conteggio dell'array della funzione ARRAY che inizierà da 0, 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 ottenuto dal codice precedente.

Esempio n. 2

VBA String Array con funzioni LBOUND e UBOUND

Nel caso in cui non si desideri mostrare tutti gli elenchi di città in una singola 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 sarà necessario 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 manualmente i numeri, usiamo le funzioni LBOUND e UBOUND per decidere automaticamente il valore inferiore e quello superiore.

Per LBound e Ubound, ho fornito un nome di array, cioè 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) A 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 this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

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

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

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

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.

Articoli interessanti...