VBA-Deklarationsarray

Excel VBA-Deklarationsarray

Die Deklaration eines Arrays in VBA ist der von Variablen sehr ähnlich, die von derselben dim-Anweisung oder statischen öffentlichen oder privaten Anweisung ausgeführt werden. Der einzige Unterschied beim Deklarieren eines Arrays und beim Deklarieren einer Variablen besteht darin, dass beim Deklarieren eines Arrays eine Größe angegeben werden muss eines Arrays, das die Obergrenze des Arrays und die Untergrenze des Arrays ist.

In VBA-Code können wir ein einzelnes Variablenarray deklarieren, das die Anzahl der Variablen enthalten kann, anstatt einzelne Variablen zu deklarieren. Dies kann dazu beitragen, die Anzahl der Zeilen im Code zu verringern.

Das Array ist eine Art Variable, die mehr als einen Wert enthalten kann, im Gegensatz zu regulären Variablen, die jeweils nur einen Wert enthalten können. Das Array ist eine erweiterte Version der Deklaration von Variablen in VBA. Stellen Sie sich zum Beispiel eine Situation vor, in der Sie Variablen 5 Schülernamen zuweisen möchten. In der Regel deklarieren wir fünf Variablen für alle fünf Variablen, denen wir einzelne Schülernamen einzeln zuweisen. Nachfolgend finden Sie den Beispielcode derselben.

Code:

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

Anstatt so viele Variablen zu deklarieren, wie wäre es mit der Idee, ein einzelnes Variablenarray zu deklarieren, das alle Schülernamen enthalten kann.

Ja, dies ist möglich, indem das Array in VBA deklariert wird.

Beispiele

Sie können diese VBA Declare Array Excel-Vorlage hier herunterladen - VBA Declare Array Excel-Vorlage

Beispiel 1

Um zu erklären, dass wir keine spezielle VBA-Codierung durchführen müssen, müssen wir einfachen Konzepten folgen.

Starten Sie zunächst die Unterprozedur.

Code:

 Sub Array_Example () End Sub 

Deklarieren Sie nun wie gewohnt eine Variable als Zeichenfolge.

Code:

 Sub Array_Example () Dim Student As String End Sub 

Sobald die Variable deklariert ist, stellen Sie sicher, wie viele Werte sie enthalten soll. In diesem Fall möchte ich die Namen von fünf Schülern speichern, daher müssen wir jetzt die Arraygröße festlegen, dh 1 bis 5. Geben Sie der Variablen in Klammern dasselbe an.

Code:

 Sub Array_Example () Dim Student (1 bis 5) As String End Sub 

Jetzt können wir für diese einzelne Variable 5 Schülernamen speichern.

Code:

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

Schauen Sie, wie viele Zeilen wir reduziert haben, indem wir die Variable als Array deklariert haben. Dies ist eine Möglichkeit, diesen Code noch zu verkürzen, indem wir ihn in die Schleifen in VBA einschließen.

Nun zum Beispiel die gleichen fünf Namen, die ich in Arbeitsblattzellen habe.3

Jetzt möchte ich diese Zahlen im Meldungsfeld in VBA anzeigen. OK, deklarieren wir eine weitere Variable für Schleifen als Integer-Datentyp.

Code:

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

Wie üblich habe ich die Array-Variable als Größe 1 bis 5 beibehalten.

Öffnen Sie nun die FOR NEXT-Schleife in VBA und geben Sie das Limit als 1 bis 5 ein, da wir fünf Namen haben.

Code:

 Sub Array_Example () Dim Student (1 bis 5) als String Dim K als Integer für K = 1 bis 5 Next K End Sub 

Um der Array-Variablen Werte zuzuweisen, müssen wir nicht die vorherige Art und Weise befolgen, Student (1), Student (2) wie folgt für die Variable „k“ der Positionsversorgungsschleifen für Zahlen anzuzeigen.

Code:

 Sub Array_Example () Dim Student (1 bis 5) As String Dim K As Integer Für K = 1 bis 5 Student (K) = Next K End Sub 

Für diese Array-Variable benötigen wir die Werte aus dem Arbeitsblatt. Wenn Sie also die CELLS-Eigenschaft verwenden, erhalten Sie die Werte aus dem Arbeitsblatt.

Code:

 Sub Array_Example () Dim Student (1 bis 5) As String Dim K As Integer Für K = 1 bis 5 Student (K) = Zellen (K, 1) .Wert Next K End Sub 

Zeigen Sie nun im Meldungsfeld den Wert der Array-Variablen an.

Code:

 Sub Array_Example () Dim Student (1 bis 5) As String Dim K As Integer Für K = 1 bis 5 Student (K) = Zellen (K, 1) .Wert MsgBox Student (K) Next K End Sub 

Führen Sie nun den Code aus. Im Meldungsfeld wird der Vorname angezeigt. Drücken Sie erneut OK, um den zweiten Namen anzuzeigen. Wenn Sie auf OK klicken, werden alle fünf Namen angezeigt.

Beispiel 2 - Zweidimensionale Arrays

Wir haben oben gesehen, wie das Array funktioniert, jetzt werden wir uns um dimensionale Arrays kümmern. Zweidimensionale Arrays konzentrieren sich sowohl auf Zeilen als auch auf Spalten.

Im obigen Beispiel haben wir die Größe des Arrays als 1 bis 5 festgelegt. Dies konzentriert sich entweder auf Zeilen oder Spalten.

Durch die Verwendung zweidimensionaler Arrays können wir uns sowohl auf Zeilen als auch auf Spalten konzentrieren. Dazu müssen wir zwei Schleifen einschließen.

Definieren Sie zuerst die Variable, dann entscheiden wir spät über die Größe des Arrays.

Code:

 Sub Two_Array_Example () Schüler als String-End-Sub dimmen 

Bestimmen Sie zuerst die Zeilengröße und dann die Spaltenlänge.

Code:

 Sub Two_Array_Example () Dim Student (1 bis 5, 1 bis 3) als 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.