Eine Microsoft Excel 2000-Version dieses Artikels finden Sie unter 213798.
Eine Version Microsoft Excel 98 und früheren Versionen Excel diesem Artikel finden Sie unter 149689.
Zusammenfassung
Dieser Artikel enthält Microsoft Visual Basic for Applications-Prozeduren, die Sie zum Arbeiten mit verschiedenen Typen von Arrays verwenden können.
Weitere Informationen
Microsoft stellt nur zur Veranschaulichung Beispiele für die Programmierung zur Verfügung, ohne dass die Garantie entweder ausgedrückt oder impliziert ist. Dies schließt, jedoch nicht beschränkt auf, implizierte Garantien der Handelsbarkeit oder Eignung für einen bestimmten Zweck ein. In diesem Artikel wird davon ausgegangen, dass Sie mit der gezeigten Programmiersprache und den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können dabei helfen, die Funktionalität eines bestimmten Verfahrens zu erläutern, aber sie ändern diese Beispiele nicht, um zusätzliche Funktionen bereitzustellen oder Prozeduren zu erstellen, die Ihren speziellen Anforderungen entsprechen. HINWEIS: In Visual Basic for Applications sind die Wörter nach dem Apostroph (') Kommentare.
So füllen Sie ein Array aus und kopieren es dann in ein Arbeitsblatt
-
Öffnen Sie eine neue Arbeitsmappe, und fügen Sie ein Visual Basic ein.
-
Geben Sie den folgenden Code in das 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 Tabelle1 aus.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makros.
-
Klicken Sie im Dialogfeld Makro auf Sheet_Fill_Array, und klicken Sie dann auf Ausführen.
So nehmen Sie Werte aus einem Arbeitsblatt und füllen das Array
-
Geben Sie die Werte von Tabelle1 in die Zellen A1:A10 ein.
-
Geben Sie Visual Basic Arbeitsblatt des Moduls 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 Tabelle1 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 klicken Sie 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 Tabelle1 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 klicken Sie dann auf Ausführen.
So vergleichen Sie zwei Matrizen
-
Erstellen Sie zwei benannte Bereiche auf Tabelle1. Benennen Sie einen Bereich1 und den anderen Bereich2.
Markieren Sie z. B. den Zellbereich A1:A10, und nennen Sie ihn Bereich1; Markieren Sie den Zellbereich B1:B10, und nennen Sie ihn Bereich2. -
Geben Sie den folgenden Code in das 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 Tabelle2 aus.
-
Zeigen Sie im Menü Extras auf Makro, und klicken Sie dann auf Makro.
-
Klicken Sie im Dialogfeld Makro auf compare_two_array, und klicken Sie dann auf Ausführen.
Für jeden Vergleich wird ein Meldungsfeld angezeigt.
So füllen Sie ein dynamisches Array aus
-
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 klicken Sie dann auf Ausführen.
HINWEIS: Eine Änderung der Variablen "number_of_elements" bestimmt die Größe des Arrays.