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

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

VBA ist seit vielen Jahren Teil der Microsoft Office Suite. Obwohl es nicht über die volle Funktionalität und Leistung einer vollständigen VB -Anwendung verfügt.

Eines der leistungsstärksten Tools, die in VBA verfügbar sind. Durch das Laden von Daten auf diese Weise können Sie Berechnungen zu diesem Datenbereich auf verschiedene Weise manipulieren oder durchführen.

Inhaltsverzeichnis

    Sie können Daten in jeden Abschnitt dieses „Boxs“ in beliebiger Reihenfolge einfügen, die Sie mögen.

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

    Dim arrmyarray (1 bis 6) als String

    Später in Ihrem Programm können Sie Daten in einen beliebigen Abschnitt dieses Arrays einfügen, indem Sie den Abschnitt innerhalb von Klammern verweisen.

    arrmyarray (1) = "Ryan Dube"

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

    Dimer Arrmyarray (1 bis 6,1 bis 2) als Ganzzahl

    Die erste Zahl repräsentiert die Zeile, und die zweite ist die Spalte. Das obige Array könnte also einen Bereich mit 6 Zeilen und 2 Spalten halten.

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

    arrmyarray (1,2) = 3

    Dadurch wird ein 3 in die Zelle B1 geladen.

    Ein Array kann jede Art von Daten als reguläre Variable wie Zeichenfolgen, Boolesche, Ganzzahlen, Schwimmkörper und mehr enthalten.

    Die Zahl innerhalb der Klammern kann auch eine Variable sein. Programmierer verwenden üblich. Sie werden später in diesem Artikel sehen, wie das geht.

    So programmieren Sie ein VBA -Array in Excel

    Schauen wir uns ein einfaches Programm an, in dem Sie Informationen aus einer Tabelle in ein mehrdimensionales Array laden möchten.

    Schauen wir uns beispielsweise eine Produktverkaufs -Tabelle an, in der Sie den Namen, der Artikel und den Gesamtverkauf des Vertriebsmitarbeiter aus der Tabelle herausholen möchten.

    Beachten Sie, dass Sie in VBA, wenn Sie Zeilen oder Spalten verweisen, Zeilen und Spalten von oben links bei 1 zählen. Die Rep -Spalte ist also 3, die Element -Spalte 4 und die Gesamtspalte 7 beträgt.

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

    Dim arrmyarray (1 bis 11, 1 bis 3) als String
    Dim ich als Ganzzahl, J als Ganzzahl
    Für i = 2 bis 12
    Für J = 1 bis 3
    arrmyarray (i-1, j) = Zellen (i, j).Wert
    Weiter j
    Als nächstes ich

    Sie werden feststellen, dass die Zeilennummer im ersten für Look die Zeilennummer in 2 anstelle von 1 starten muss, um die Header -Zeile zu überspringen. Dies bedeutet, dass Sie 1 für den Array -Zeilenwert subtrahieren müssen, wenn Sie den Zellwert unter Verwendung von Zellen (i, j) in das Array in das Array laden.Wert.

    Wo Sie Ihr VBA -Array -Skript einfügen können

    Um ein VBA -Skript in Excel zu programmieren, müssen Sie den VBA -Editor verwenden. Sie können darauf zugreifen, indem Sie die auswählen Entwickler Menü und Auswahl Code anzeigen im Steuerungsabschnitt des Bandes.

    Wenn Sie den Entwickler im Menü nicht sehen, müssen Sie ihn hinzufügen. Wählen Sie dazu aus Datei Und Optionen So öffnen Sie das Fenster Excel -Optionen.

    Ändern Sie die Befehle auswählen von Dropdown nach Alle Befehle. Wählen Entwickler im linken Menü und wählen Sie die aus Hinzufügen Taste, um es auf der rechten Seite in den Bereich zu verschieben. Wählen Sie das Kontrollkästchen aus, um es zu aktivieren, und wählen Sie es aus OK beenden.

    Stellen Sie beim Öffnen des Code -Editor -Fensters sicher, dass das Blatt, in dem Ihre Daten enthalten sind, im linken Bereich ausgewählt ist. Wählen Arbeitsblatt im linken Dropdown und aktivieren Sie rechts. Dadurch wird eine neue Unterroutine namens Worksheet_Activate () erstellt ().

    Diese Funktion wird ausgeführt, wenn die Tabellenkalkulationsdatei geöffnet wird. Fügen Sie den Code in diese Unterroutine in den Skriptbereich ein.

    Dieses Skript wird durch die 12 Zeilen funktioniert und den Wiederholungsnamen aus Spalte 3, dem Element aus Spalte 4 und dem Gesamtverkauf aus Spalte 7 geladen.

    Sobald beide für Schleifen fertig sind, enthält das zweidimensionale Array -Array -Arrmyarray alle Daten, die Sie aus dem Originalblatt angegeben haben.

    Manipulation von Arrays in Excel VBA

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

    Sie können dies tun, indem Sie nach dem ersten eine weitere für Schleife hinzufügen, mit einem Befehl, die Ergebnisse in ein neues Blatt zu schreiben.

    Für k = 2 bis 12
    Blätter ("Sheet2").Zellen (k, 1).Wert = arrmyarray (k - 1, 1)
    Blätter ("Sheet2").Zellen (k, 2).Wert = arrmyarray (k - 1, 2)
    Blätter ("Sheet2").Zellen (k, 3).Wert = arrmyarray (k - 1, 3)
    Blätter ("Sheet2").Zellen (k, 4).Value = arrmyarray (k - 1, 3) * 0.05
    Weiter k

    Dadurch wird das gesamte Array in Blatt2 „entladen“, wobei eine zusätzliche Zeile die Gesamtmultiplizierung 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. 

    Das obige Beispiel ist eine sehr einfache Verwendung für ein Array. Sie können viel größere Arrays erstellen und Sortieren, Mittelung oder viele andere Funktionen für die in ihnen gespeicherten Daten ausführen.

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

    Die Anwendungen sind nur durch Ihre Vorstellungskraft begrenzt.