Was ist ein VBA-Array in Excel und wie programmiert man es?


VBA ist seit vielen Jahren Teil der Microsoft Office-Suite. VBA verfügt zwar nicht über die volle Funktionalität und Leistungsfähigkeit einer vollständigen VB-Anwendung, bietet Office-Benutzern jedoch die Flexibilität, Office-Produkte zu integrieren und die darin ausgeführten Arbeiten zu automatisieren.

Eines der leistungsstärksten Tools In VBA steht die Möglichkeit zur Verfügung, eine ganze Reihe von Daten in eine einzige Variable, ein Array, zu laden. Wenn Sie Daten auf diese Weise laden, können Sie diesen Datenbereich auf verschiedene Weise bearbeiten oder berechnen.

Was ist also ein VBA-Array? In diesem Artikel beantworten wir diese Frage und zeigen Ihnen, wie Sie eine in Ihr eigenes VBA-Skript verwenden.

Was ist ein VBA-Array?

Verwenden eines VBA Array in Excel ist sehr einfach, aber das Verständnis des Konzepts von Arrays kann ein wenig komplex sein, wenn Sie noch nie eines verwendet haben.

Stellen Sie sich ein Array wie ein Feld mit Abschnitten darin vor. Ein eindimensionales Array ist eine Box mit einer Zeile von Abschnitten. Ein zweidimensionales Array ist ein Feld mit zwei Zeilen von Abschnitten.

Sie können Daten in jeder beliebigen Reihenfolge in jeden Abschnitt dieser "Box" einfügen.

In_content_1 all: [300x250] / dfp: [640 x 360]->

Zu Beginn Ihres VBA-Skripts müssen Sie dieses "Feld" definieren, indem Sie Ihr VBA-Array definieren. Um ein Array zu erstellen, das einen Datensatz enthalten kann (ein eindimensionales Array), schreiben Sie die folgende Zeile:

Dim arrMyArray(1 To 6) As String

Später in Ihrem Programm können Sie sie platzieren

arrMyArray(1) = "Ryan Dube"

Mit der folgenden Zeile können Sie ein zweidimensionales Array erstellen.

Dim arrMyArray(1 To 6,1 to 2) As Integer

Die erste Zahl steht für die Zeile und die zweite für die Spalte. Das obige Array kann also einen Bereich mit 6 Zeilen und 2 Spalten enthalten.

Sie können jedes Element dieses Arrays wie folgt mit Daten laden.

arrMyArray(1,2) = 3

Dadurch wird eine 3 in die Zelle B1 geladen.

Ein Array kann alle Arten von Daten als reguläre Variable enthalten, z. B. Zeichenfolgen, Boolesche Werte, Ganzzahlen, Gleitkommazahlen und mehr.

Die Zahl in der Klammer kann auch eine Variable sein. Programmierer verwenden normalerweise eine For-Schleife, um alle Abschnitte eines Arrays zu durchlaufen und Datenzellen in der Tabelle in das Array zu laden. Weitere Informationen hierzu finden Sie weiter unten in diesem Artikel.

Programmieren eines VBA-Arrays in Excel

Schauen wir uns ein einfaches Programm an, in das Sie möglicherweise Informationen laden möchten

Schauen wir uns als Beispiel eine Produktverkaufstabelle an, in der Sie den Namen, den Artikel und den Gesamtverkauf des Vertriebsmitarbeiters aus der Tabelle ziehen möchten.

>

Beachten Sie, dass Sie in VBA, wenn Sie auf Zeilen oder Spalten verweisen, Reihen und Spalten beginnend bei 1 links oben zählen. Die Spalte rep ist also 3, die Spalte item ist 4 und die Spalte total ist 7.

Um diese drei Spalten in alle 11 Zeilen zu laden, müssen Sie das folgende Skript schreiben.

Dim arrMyArray(1 To 11, 1 To 3) As String
Dim i As Integer, j As Integer
For i = 2 To 12
For j = 1 To 3
arrMyArray(i-1, j) = Cells(i, j).Value
Next j
Next i

Sie werden feststellen, dass zum Überspringen der Kopfzeile die Zeilennummer in der ersten For-Suche bei 2 und nicht bei 1 beginnen muss. Dies bedeutet, dass Sie beim Laden der 1 für den Array-Zeilenwert subtrahieren müssen Zellenwert mit Cells (i, j) .Value in das Array einfügen.

Position des VBA-Array-Skripts

Um ein VBA-Skript in Excel zu platzieren, müssen Sie das verwenden VBA-Editor. Sie können darauf zugreifen, indem Sie das Menü Entwicklerauswählen und im Abschnitt Steuerelemente des Menübands Code anzeigenauswählen.

Wenn Sie den Entwickler nicht im Menü sehen, müssen Sie füge es hinzu Wählen Sie dazu Dateiund Optionen, um das Fenster mit den Excel-Optionen zu öffnen.

Ändern Sie die Auswahlbefehle in Alle Befehle. Wählen Sie im linken Menü Entwickleraus und klicken Sie auf die Schaltfläche Hinzufügen, um sie in den rechten Bereich zu verschieben. Aktivieren Sie das Kontrollkästchen, um es zu aktivieren, und klicken Sie zum Beenden auf OK.

Stellen Sie beim Öffnen des Code-Editor-Fensters sicher, dass das Blatt, in dem sich Ihre Daten befinden, im linken Bereich ausgewählt ist. Wählen Sie in der Dropdown-Liste links Arbeitsblattund rechts Aktivierenaus. Dadurch wird eine neue Unterroutine mit dem Namen Worksheet_Activate () erstellt.

Diese Funktion wird ausgeführt, wenn die Tabellenkalkulationsdatei geöffnet wird. Fügen Sie den Code in das Skriptfenster innerhalb dieser Unterroutine ein.

Dieses Skript durchläuft die 12 Zeilen und lädt den Namen des Vertreters aus Spalte 3, den Artikel aus Spalte 4 und den Gesamtverkauf aus Spalte 7.

Sobald beide For-Schleifen abgeschlossen sind, wird das zweidimensionale Array erstellt arrMyArray enthält alle Daten, die Sie auf dem Originalblatt angegeben haben.

Bearbeiten von Arrays in Excel VBA

Angenommen, Sie möchten auf alle endgültigen Verkaufspreise eine Mehrwertsteuer von 5% anwenden und schreiben Sie dann alle Daten auf ein neues Blatt.

Fügen Sie dazu nach dem ersten eine weitere For-Schleife hinzu, und geben Sie den Befehl ein, die Ergebnisse auf ein neues Blatt zu schreiben.

For k = 2 To 12
Sheets("Sheet2").Cells(k, 1).Value = arrMyArray(k - 1, 1)
Sheets("Sheet2").Cells(k, 2).Value = arrMyArray(k - 1, 2)
Sheets("Sheet2").Cells(k, 3).Value = arrMyArray(k - 1, 3)
Sheets("Sheet2").Cells(k, 4).Value = arrMyArray(k - 1, 3) * 0.05
Next k

Dadurch wird das gesamte Array in Sheet2 "entladen", wobei eine zusätzliche Zeile die Summe multipliziert mit 5% für den Steuerbetrag enthält.

Das resultierende Blatt sieht folgendermaßen aus:

Wie Sie sehen, sind VBA-Arrays in Excel äußerst nützlich und so vielseitig wie jeder andere Excel-Trick.

Das obige Beispiel ist eine sehr einfache Verwendung für ein Array. Sie können viel größere Arrays erstellen und die darin gespeicherten Daten sortieren, mitteln oder mit vielen anderen Funktionen vergleichen.

Wenn Sie wirklich kreativ werden möchten, können Sie sogar zwei Arrays 3 aus zwei verschiedenen Blättern, und führen Sie Berechnungen zwischen Elementen jedes Arrays durch.

Die Anwendungen sind nur durch Ihre Vorstellungskraft begrenzt.

EXCEL VBA Die wichtigsten Befehle #6 - Arrays, Datenfelder / Einführung Excel VBA

Zusammenhängende Posts:


18.01.2020