Alles, was sie über vba-variablen wissen müssen

Variable VBA

In VBA ist eine Variable wie eine Speicherbox, die selbst in Ihrem System gespeichert wird, aber sie kann dort einen Wert für Sie speichern und Sie können diesen Wert in Ihrem Code verwenden und diesen Wert ändern, wenn Sie möchten (wie der Name schon sagt: „VARIABLE“) „ist etwas, dessen Wert nicht festgelegt ist).

Um eine Variable zu deklarieren, müssen Sie einem einfachen Verfahren folgen:

  1. Verwenden Sie am Anfang das Schlüsselwort „Dim“.
  2. Geben Sie einen Namen für die Variable an.
  3. Verwenden Sie nach dem Namen das Schlüsselwort „As“.
  4. Geben Sie den „Datentyp“ der Variablen basierend auf dem Wert an, den Sie ihr zuweisen möchten.

Hier haben wir den Namen „startDate“ verwendet und den Datentyp „Date“ angegeben. Nachdem Sie eine Variable deklariert haben, können Sie ihr einen Wert zuweisen.

 Dim startDate As Date startDate = “11/10/2018”

Wenn Sie nun das Startdatum in Ihrem Code verwenden, verwendet Excel das von Ihnen angegebene Datum.

Datentypen

In VBA sind Datentypen grundsätzlich die Datentypen, die Sie angeben müssen, wenn Sie einen Wert in einer Variablen oder Konstante speichern. Wenn Sie beispielsweise ein Datum in einer Variablen speichern möchten, müssen Sie diese Datumsvariable zunächst als Datentyp deklarieren.

Datentypen erklärt

Hier ist die vollständige Liste der Datentypen, die Sie in VBA verwenden können.

Datentyp
Verwendete Bytes
Wertebereich
Bytes
1 Byte
0 bis 255
Boolescher Wert
2 Bytes
Richtig oder falsch
Ganz
2 Bytes
-32,768 bis 32,767
Long (ganzzahlig lang)
4 Bytes
-2.147.483.648 bis 2.147.483.647
Allein
4 Bytes
-3,402823E38 bis -1,401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E38 für positive Werte
Doppelt
8 Byte
-1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte
Kasse
8 Byte
-922.337.203.685.477,5808 bis 922.337.203.685.477,5807
Dezimal
14 Byte
+/-79 228 162 514 264 337 593 543 950 335 ohne Dezimalpunkt; +/-7,9228162514264337593543950335 mit 28 Dezimalstellen rechts vom Dezimalpunkt
Datum
8 Byte
1. Januar 100 bis 31. Dezember 9999
Objekt
4 Bytes
Beliebige Objektreferenz
Kette (variable Länge)
10 Bytes + Stringlänge
0 bis rund 2 Milliarden
Kette (feste Länge)
Kettenlänge
1 auf ca. 65.400
Variante (mit Zahlen)
16 Byte
Jeder numerische Wert bis zum Bereich eines Double
Variante (mit Zeichen)
22 Byte + Stringlänge
Gleicher Bereich wie eine Zeichenfolge variabler Länge
Benutzerdefinierte
Verschieden
Der Bereich jedes Elements entspricht dem Bereich seines Datentyps

Dies wird dringend für die Deklaration des Datentyps für Variablen und Konstanten empfohlen.

Wenn Sie den Datentyp für eine Variable oder Konstante angeben, stellt dies die Gültigkeit Ihrer Daten sicher und verhindert, dass Sie einen ungültigen Datentyp eingeben. Wenn Sie den Datentyp weglassen, wendet VBA den Datentyp „Variant“ auf Ihre Variable an – dies ist am flexibelsten und VBA errät nicht, welcher Datentyp sein soll.

Tipp: Der beste Weg, die Angabe von Datentypen nicht zu überspringen, besteht darin, die explizite Option ganz oben im Modul zu verwenden, bevor Sie mit dem Code beginnen.

Explizit oder implizit

Sie können eine Variable explizit oder implizit deklarieren. Explizite Deklaration bedeutet, dass Sie eine Variable deklarieren und ihren Wert festlegen, bevor Sie einer Variablen einen Wert zuweisen . Der VORTEIL davon besteht darin, dass Sie es und seinen Datentyp definieren. VBA speichert die Daten immer in diesem Format.

Hier ist ein Beispiel:

 Dim myDate As Date

Wenn Sie also einen Wert in diesem VBA speichern, wird darauf immer das Datumsformat angewendet. Aber bei der impliziten Deklaration müssen Sie sich nicht um diese explizite Deklarationsanweisung kümmern. Stattdessen legen Sie den Wert der Variablen fest und verwenden ihn in der Codeanweisung. In der impliziten Deklaration speichert VBA die Daten in einem Variant-Variablentyp, da Sie den Typ nicht angegeben haben.

Mit anderen Worten: Wenn Sie in Ihrem Code einfach eine Variable verwenden, ohne sie zu deklarieren, ist sie implizit. Nachfolgend finden Sie ein Beispiel für eine implizite Deklaration:

 myDate = “11/10/1990”

So weisen Sie den Wert einfach einer Variablen zu und verwenden ihn in Ihren Codeanweisungen. Wenn Sie mich fragen, ist es immer besser, eine Variable zu deklarieren, bevor Sie sie verwenden. Dies ist nicht nur eine gute Vorgehensweise, sondern sorgt auch dafür, dass Ihr Code schneller ausgeführt wird und leichter zu verstehen ist.

Statische Variable

Nun, ich habe Ihnen gesagt, dass die Variable der Ort ist, an dem Sie den Wert ändern können, aber das ist etwas anderes. Bei einer normalen Variablen würde nach Abschluss einer Prozedur der in der Variablen gespeicherte Wert aus dem VBA-Speicher gelöscht. Wenn Sie diesen Wert jedoch nicht verlieren möchten, können Sie diese Variable statisch machen.

Um eine Variable statisch zu machen, sodass sie den Wert beibehält, verwenden Sie einfach das Schlüsselwort „Static“ anstelle von „Dim“.

Benennen Sie eine Variable

Sie können einer Variablen einen beliebigen Namen geben (diese Regeln gelten auch für den Konstanten- und Prozedurnamen), Sie müssen jedoch einige Regeln beachten:

  • Sie können Buchstaben, Zahlen und einige Satzzeichen verwenden, das erste Zeichen des Namens muss jedoch ein Alphabet sein.
  • Leerzeichen oder Punkte sind keine gültigen Zeichen für die Verwendung im Namen, Sie können jedoch einen Unterstrich verwenden, um den Namen lesbar zu machen.
  • Sie können in einem Namen keine Sonderzeichen verwenden.
  • Die Länge eines Namens kann 254 Zeichen betragen, die Verwendung eines Namens ergibt jedoch keinen Sinn.
  • Es gibt viele reservierte Wörter, also Wörter, die Sie nicht für den Namen verwenden können. Wenn Sie versuchen, eines dieser Wörter zu verwenden, erhalten Sie eine Fehlermeldung.
  • VBA unterscheidet nicht zwischen Fällen.

Umfang

An dieser Stelle kennen Sie die Vorgehensweisen und wissen, welche Vorgehensweise in welcher Situation sinnvoll ist. Außerdem erfahren Sie etwas über Variablen und wie Sie deren Datentypen definieren.

Der nächste wichtige Punkt ist das Verständnis des Umfangs, also der Verfügbarkeit. Hier kann es eingesetzt werden. Wenn Sie eine Variable definieren, legt der Gültigkeitsbereich fest, ob Sie sie außerhalb ihrer Hostprozedur verwenden können oder nicht. Es gibt drei Möglichkeiten, Variablenbereiche zu definieren (konstant und sogar mit der gesamten Prozedur).

  1. Prozedurebene: Sie können eine Variable nur in derselben Prozedur verwenden, in der Sie sie deklarieren.
  2. Modulebene (privat): Macht den Zugriff auf eine Variable von allen Prozeduren in einem Modul aus möglich.
  3. Modulebene (Öffentlich): Macht eine Variable für alle Prozeduren in allen Modulen zugänglich.

Der Standardbereich einer Variablen ist die Prozedur (Procedure-Level), in der diese Variable deklariert ist.

Aber lassen Sie mich etwas aus der realen Welt mit Ihnen teilen.

Ich arbeite in einem Coworking Space und mein Sitzplatz ist im ersten Stock des dreistöckigen Gebäudes. Ich sitze fast jeden Tag auf dem gleichen Platz. Wenn Sie also eine Variable mit Gültigkeitsbereich auf Prozedurebene deklarieren, können Sie sie nur innerhalb derselben Prozedur verwenden. So wie ich jeden Tag auf demselben Platz auf derselben Etage sitze. Aber ich verrate Ihnen noch mehr: Obwohl ich im ersten Stock sitze, kann ich auch jeden Sitzplatz in den anderen Etagen nutzen. Und im Schnappschuss unten haben wir die Variable „myName“ oben im Modul mit dem Schlüsselwort „Private“ deklariert, bevor wir eine Prozedur gestartet haben, und ich habe sie in allen drei Codes verwendet. Stellen Sie sich dieses Modul als ein Gebäude vor, in dem Sie verschiedene Stockwerke haben (Prozeduren). Da Sie die Variable bereits zu Beginn des Moduls deklariert haben, können Sie jede der Prozeduren in diesem Modul verwenden. Dies wird als Scoping auf privater Modulebene bezeichnet. Hier noch das Letzte: Mein Büro hat Niederlassungen in verschiedenen Städten im ganzen Land, und wenn ich dorthin gehe, kann ich zu diesen Büros gehen und jeden der Sitzplätze nutzen, wenn ich möchte. Wenn Sie also unterschiedliche Module in Ihrer Arbeitsmappe haben, können Sie eine Variable in allen diesen Modulen verwenden, indem Sie sie als öffentlich deklarieren.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert