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

VBA ist seit vielen Jahren Teil der Microsoft Office -Suite. Obwohl es nicht die volle Funktionalität und Leistung einer vollständigen VB-Anwendung bietet, bietet VBA Office - Benutzern die Flexibilität, Office - Produkte zu integrieren und Ihre Arbeit darin zu automatisieren.

Eines der leistungsstärksten Werkzeuge, die in VBA verfügbar sind, ist die Fähigkeit, eine ganze Reihe von Daten in eine einzelne Variable namens Array zu laden. Durch das Laden von Daten auf diese Weise können Sie diesen Datenbereich auf vielfältige Weise manipulieren oder Berechnungen durchführen.

Was ist also ein VBA -Array? In diesem Artikel beantworten wir diese Frage und zeigen Ihnen, wie Sie eines in Ihrem eigenen VBA-Skript(your own VBA script) verwenden .

Was ist ein VBA-Array?

Die Verwendung eines VBA -Arrays in Excel ist sehr einfach, aber das Verständnis des Konzepts von Arrays kann etwas komplex sein, wenn Sie noch nie eines verwendet haben.

Stellen Sie(Think) sich ein Array wie eine Kiste mit Abschnitten darin vor. Ein eindimensionales Array ist eine Box mit einer Reihe von Abschnitten. Ein zweidimensionales Array ist eine Box mit zwei Abschnittszeilen.

Sie können in jedem Abschnitt dieser „Box“ Daten in beliebiger Reihenfolge eingeben.

Am Anfang Ihres VBA -Skripts müssen Sie diese „Box“ definieren, indem Sie Ihr VBA -Array definieren. Um also ein Array zu erstellen, das einen Datensatz enthalten kann (ein eindimensionales Array), würden Sie die folgende Zeile schreiben.

Dim arrMyArray(1 To 6) As String

Später in Ihrem Programm können Sie Daten in jeden Abschnitt dieses Arrays einfügen, indem Sie auf den Abschnitt in Klammern verweisen.

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, die zweite für die Spalte. Das obige Array könnte 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 jede Art 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 üblicherweise eine For - Schleife(Loop) , um durch alle Abschnitte eines Arrays zu zählen und Datenzellen in der Tabelle in das Array zu laden. Wie das geht, erfahren Sie später in diesem Artikel.

So programmieren Sie ein VBA-Array in Excel

Werfen wir einen Blick auf ein einfaches Programm, in dem Sie Informationen aus einer Tabellenkalkulation in ein mehrdimensionales Array laden möchten.

Sehen 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, Zeilen und Spalten(rows and columns) beginnend bei 1 oben links zählen. Die Spalte „rep“ ist also 3, die Spalte „item“ ist 4 und die Spalte „total“ ist 7.

Um diese drei Spalten über 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 im ersten For-Look bei 2 und nicht bei 1 beginnen muss. Das bedeutet, dass Sie 1 für den Array-Zeilenwert subtrahieren müssen, wenn Sie den Zellenwert laden in das Array mit Cells (i, j).Value.

Wo Sie Ihr VBA-Array-Skript einfügen(Your VBA Array Script)

Um ein VBA- Skript in Excel zu programmieren , müssen Sie den VBA- Editor verwenden. Sie können darauf zugreifen, indem Sie das Menü „ Entwickler(Developer) “ auswählen und im Abschnitt „ Steuerelemente(Controls) “ des Menübands „ Code anzeigen“ auswählen.(View Code)

Wenn Sie den Entwickler(Developer) nicht im Menü sehen, müssen Sie ihn hinzufügen. Wählen Sie dazu Datei(File) und Optionen(Options) , um das Fenster Excel-Optionen zu öffnen.

Ändern Sie die Auswahlbefehle aus der Dropdown-Liste in Alle Befehle(All Commands) . Wählen Sie Entwickler(Developer) aus dem linken Menü und wählen Sie die Schaltfläche Hinzufügen(Add) , um sie in den Bereich auf der rechten Seite zu verschieben. Aktivieren Sie das Kontrollkästchen, um es zu aktivieren, und wählen Sie OK , um den Vorgang abzuschließen.

Wenn das Code-Editor- Fenster geöffnet wird, vergewissern Sie sich, dass das Blatt, in dem sich Ihre Daten befinden, im linken Bereich ausgewählt ist. Wählen Sie im linken Dropdown-Menü Arbeitsblatt und rechts (Worksheet)Aktivieren(Activate) aus. Dadurch wird eine neue Subroutine namens Worksheet_Activate () erstellt.

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

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

Sobald beide For-Schleifen abgeschlossen sind, enthält das zweidimensionale Array arrMyArray alle Daten, die Sie aus dem ursprünglichen Blatt angegeben haben.

Bearbeiten von Arrays in Excel VBA

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

Sie können dies tun, indem Sie nach der ersten eine weitere For-Schleife mit einem Befehl hinzufügen, um die Ergebnisse in 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(Sheet2) „entladen“ , mit einer zusätzlichen Zeile, die die Summe multipliziert mit 5 % für den Steuerbetrag enthält.

Das resultierende Blatt sieht so aus.

Wie Sie sehen können, sind VBA- Arrays in Excel äußerst nützlich und so vielseitig wie jeder andere Excel-Trick(any other 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 viele andere Funktionen ausführen.

Wenn Sie wirklich kreativ werden möchten, können Sie sogar zwei Arrays erstellen , die eine Reihe von Zellen(containing a range of cells) aus zwei verschiedenen Blättern enthalten, und Berechnungen zwischen den Elementen jedes Arrays durchführen.

Die Anwendungen sind nur durch Ihre Vorstellungskraft begrenzt.



About the author

Ich bin Freeware-Softwareentwickler und Befürworter von Windows Vista/7. Ich habe mehrere hundert Artikel zu verschiedenen Themen rund um das Betriebssystem geschrieben, darunter Tipps und Tricks, Reparaturanleitungen und Best Practices. Über mein Unternehmen Help Desk Services biete ich auch bürobezogene Beratungsdienste an. Ich habe ein tiefes Verständnis dafür, wie Office 365 funktioniert, welche Funktionen es gibt und wie man sie am effektivsten einsetzt.



Related posts