VBA Declare Array

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 vuoi assegnare 5 nomi di studenti a variabili e in pratica generale, dichiariamo cinque variabili per tutte e cinque le variabili assegniamo i nomi di singoli studenti uno per uno, di seguito è riportato il codice di esempio delle stesse.

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

Puoi scaricare questo modello VBA Declare Array Excel qui - Modello VBA Declare Array Excel

Esempio 1

Per dichiarare che non abbiamo bisogno di 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 di quanti valori deve contenere. In questo caso, voglio memorizzare i nomi di cinque studenti, quindi ora dobbiamo correggere la dimensione dell'array, ovvero 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 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 di 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 dell'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 array abbiamo bisogno dei valori dal foglio di lavoro, quindi utilizzando la proprietà CELLS ottieni 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 tramite la finestra di 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. Premere 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 precedente, 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 

Per prima cosa, 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 

For this, I have structured the data for student name, marks and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

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

Now enclose the loop as shown below.

Code:

 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").Select Student(k, J) = Cells(k, J).Value Worksheets("Copy Sheet").Select Cells(k, J).Value = Student(k, J) Next J Next k End Sub 

What this will do is it will copy the data from the “Student List” sheet and paste in “Copy Sheet”.

Things to Remember

  • The array is a vast concept, this is just an introductory part.
  • You need advanced coding skills to understand the array declaration.
  • The more you use arrays in your code the more you will get used to it.