Zusammenfassung
Dieser Artikel enthält Beispielverfahren für Microsoft Visual Basic for Applications, die Sie für die Arbeit mit verschiedenen Arraytypen verwenden können.
Weitere Informationen
Microsoft stellt Programmierbeispiele nur zur Veranschaulichung bereit, ohne ausdrückliche oder implizite Garantie. Dies umfasst, ist aber nicht beschränkt auf die impliziten Gewährleistungen der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der Programmiersprache, die veranschaulicht wird, und mit den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können ihnen helfen, die Funktionalität eines bestimmten Verfahrens zu erklären, aber sie werden diese Beispiele nicht ändern, um zusätzliche Funktionen bereitzustellen oder Verfahren zu erstellen, die Ihren spezifischen Anforderungen entsprechen. HINWEIS: In Visual Basic for Applications Verfahren sind die Wörter nach dem Apostroph (') Kommentare.
So füllen Sie ein Array aus, und kopieren Sie es dann in ein Arbeitsblatt
-
Öffnen Sie eine neue Arbeitsmappe, und fügen Sie ein Visual Basic-Modulblatt ein.
-
Geben Sie den folgenden Code auf dem Modulblatt ein.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Wählen Sie Blatt1 aus.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makros.
-
Klicken Sie im Dialogfeld Makro auf Sheet_Fill_Array und dann auf Ausführen.
So nehmen Sie Werte aus einem Arbeitsblatt und füllen das Array aus
-
Geben Sie Werte in Sheet1 in die Zellen A1:A10 ein.
-
Geben Sie auf einem Visual Basic-Modulblatt den folgenden Code ein:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Wählen Sie Blatt1 aus.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makros.
-
Klicken Sie im Dialogfeld Makro auf from_sheet_make_array und dann auf Ausführen.
So übergeben und empfangen Sie ein Array
-
Geben Sie auf einem Modulblatt den folgenden Code ein:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Wählen Sie Blatt1 aus, und markieren Sie den Bereich A1:A10.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makros.
-
Klicken Sie im Dialogfeld Makro auf pass_array und dann auf Ausführen.
So vergleichen Sie zwei Arrays
-
Erstellen Sie zwei benannte Bereiche in Sheet1. Benennen Sie einen Bereich1 und den anderen Bereich2.
Markieren Sie beispielsweise den Zellbereich A1:A10, und nennen Sie ihn range1; Markieren Sie den Zellbereich B1:B10, und nennen Sie ihn range2. -
Geben Sie den folgenden Code auf dem Modulblatt ein.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Wählen Sie Blatt2 aus.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makro.
-
Klicken Sie im Dialogfeld Makro auf compare_two_array und dann auf Ausführen.
Für jeden Vergleich wird ein Meldungsfeld angezeigt.
So füllen Sie ein dynamisches Array
-
Geben Sie auf einem Modulblatt den folgenden Code ein:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makros.
-
Klicken Sie im Dialogfeld Makro auf fill_array und dann auf Ausführen.
HINWEIS: Wenn Sie die Variable "number_of_elements" ändern, wird die Größe des Arrays bestimmt.