VBA Declare Array - Come dichiarare gli array in VBA?

VBA di Excel dichiara array

La dichiarazione di array in VBA è molto simile a quella delle variabili viene eseguita dalla stessa istruzione dim o statica pubblica o privata, l'unica differenza nel dichiarare un array e dichiarare una variabile è che mentre si dichiara un array dobbiamo fornire una dimensione di una matrice che è il limite superiore della matrice e il limite inferiore della matrice.

Nel codice VBA, possiamo dichiarare un singolo array di variabili che può contenere il numero di variabili invece di dichiarare singole variabili. Questo può aiutare a ridurre il numero di righe nel codice.

L'array è un tipo di variabile che può contenere più di un valore, a differenza delle variabili regolari che possono contenere solo un valore alla volta. L'array è una versione avanzata della dichiarazione di variabili in VBA. Ad esempio, immagina una situazione in cui desideri assegnare 5 nomi di studenti a variabili e, in pratica, dichiariamo cinque variabili per tutte e cinque le variabili che assegniamo ai singoli nomi di studenti uno per uno; di seguito è riportato il codice di esempio dello stesso.

Codice:

Sub Array_Example () Dim Student1 As String Dim Student2 As String Dim Student3 As String Dim Student4 As String Dim Student5 As String End Sub

Invece di dichiarare così tante variabili, che ne dici dell'idea di dichiarare un singolo array di variabili che può contenere tutti i nomi degli studenti?

Sì, questo è possibile dichiarando l'array in VBA.

Esempi

Esempio 1

Per dichiarare, non è necessario eseguire alcuna codifica VBA speciale. Piuttosto, dobbiamo seguire concetti semplici.

Innanzitutto, avvia la sottoprocedura.

Codice:

Sub Array_Example () End Sub

Ora, come al solito, dichiara una variabile come stringa.

Codice:

Sub Array_Example () Dim Student As String End Sub

Una volta dichiarata la variabile, assicurati ora di quanti valori deve contenere. In questo caso, voglio memorizzare i nomi di cinque studenti, quindi ora dobbiamo correggere la dimensione dell'array, cioè da 1 a 5. Fornire la stessa cosa alla variabile tra parentesi.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String End Sub

Ora per questa singola variabile, possiamo memorizzare 5 nomi di studenti.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = "Anderson" End Sub

Guarda quante righe abbiamo ridotto dichiarando la variabile come un array. Questo è un modo per farlo. Possiamo ancora accorciare questo codice racchiudendolo all'interno dei loop in VBA.

Ora per un esempio, gli stessi cinque nomi che ho nelle celle del foglio di lavoro

Ora voglio mostrare questi numeri nella finestra del messaggio in VBA; ok, dichiariamo un'altra variabile per i cicli come tipo di dati Integer.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Dim K As Integer End Sub

Come al solito, ho mantenuto la variabile array da 1 a 5 dimensioni.

Ora apri il ciclo FOR NEXT in VBA e poiché abbiamo cinque nomi inserisci il limite da 1 a 5.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Dim K As Integer For K = da 1 a 5 Next K End Sub

Per assegnare valori alla variabile array, non è necessario seguire il modo precedente di mostrare Student (1), Student (2) in questo modo per i numeri posizione supply loop variabile "k".

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Dim K As Integer For K = da 1 a 5 Student (K) = Next K End Sub

Per questa variabile di matrice, abbiamo bisogno dei valori dal foglio di lavoro, quindi utilizzando la proprietà CELLS si ottengono i valori dal foglio di lavoro.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Dim K As Integer For K = da 1 a 5 Student (K) = Cells (K, 1) .Value Next K End Sub

Ora attraverso la finestra del messaggio, mostra il valore della variabile dell'array.

Codice:

Sub Array_Example () Dim Student (da 1 a 5) As String Dim K As Integer For K = da 1 a 5 Student (K) = Cells (K, 1) .Value MsgBox Student (K) Next K End Sub

Ora esegui il codice. Nella finestra del messaggio, vedremo il nome. Premi nuovamente Ok per vedere il secondo nome. In questo modo premendo Ok, possiamo vedere tutti i cinque nomi.

Esempio n. 2 - Array bidimensionali

Abbiamo visto sopra come funziona l'array, ora vedremo gli array dimensionali. Gli array bidimensionali si concentrano su righe e colonne.

Nell'esempio sopra, abbiamo determinato la dimensione dell'array da 1 a 5; questo si concentra su righe o colonne.

Utilizzando array bidimensionali, possiamo concentrarci su righe e colonne. Per questo, dobbiamo racchiudere due loop.

Per prima cosa, definisci la variabile, poi in seguito decideremo la dimensione dell'array.

Codice:

Sub Two_Array_Example () Dim Student As String End Sub

Innanzitutto, decidi la dimensione della riga, quindi la lunghezza della colonna.

Codice:

Sub Two_Array_Example () Dim Student (da 1 a 5, da 1 a 3) As String End Sub

Per questo, ho strutturato i dati per i nomi degli studenti, i voti e lo stato del voto.

Ora torna alla finestra di codifica.

Dichiara altre due variabili per un ciclo.

Codice:

Sub Two_Array_Example () Dim Student (da 1 a 5, da 1 a 3) As String Dim K As Integer, J As Integer End Sub

Ora racchiudi il ciclo, come mostrato di seguito.

Codice:

Sub Two_Array_Example () Dim Student (1 To 5, 1 To 3) As String Dim k As Integer, J As Integer For k = 1 To 5 For J = 1 to 3 Worksheets ("Student List"). Seleziona Student (k, J) = Celle (k, J) .Value Worksheets ("Copy Sheet"). Seleziona Cells (k, J) .Value = Student (k, J) Next J Next k End Sub

Ciò che farà è copiare i dati dal foglio "Elenco studenti" e incollarli in "Copia foglio".

Cose da ricordare

  • La matrice è un concetto vasto; questa è solo una parte introduttiva.
  • Sono necessarie competenze di codifica avanzate per comprendere la dichiarazione dell'array.
  • Più usi gli array nel tuo codice, più ti ci abituerai.

Articoli interessanti...