Langer Variablentyp
Die VBA Lang Datentyp wird verwendet, um sehr lange Datenwerte zu speichern (-2.147.483.648 bis 2.147.483.648). Es können nur ganze Zahlen (ohne Nachkommastellen) gespeichert werden.
Um eine Long-Variable zu deklarieren, verwenden Sie die Dim-Anweisung (kurz für Dimension):
1 | Dim LngA als Long |
Um dann einer Variablen einen Wert zuzuweisen, verwenden Sie einfach das Gleichheitszeichen:
1 | LngA = 30000 |
Das Einfügen in eine Prozedur sieht so aus:
12345678 | Sub lngExample()'deklariere die lange VariableDim LngA als Long'die lange Variable füllenLngA = 30000'zeige die NachrichtenboxMsgBox lngAEnd Sub |
Wenn Sie den obigen Code ausführen, wird das folgende Meldungsfeld angezeigt.
LongLong-Datentyp
Der Datentyp LongLong ist nur in der 64-Bit-Version von Microsoft Office verfügbar. Wenn Sie eine 32-Bit-Version von Office auf einem 64-Bit-Computer ausführen, ist dieser Datentyp nicht verfügbar. Es unterstützt Zahlen im Bereich von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807.
1 | Dim lngA als LongLong |
LongPtr-Datentyp
Der LongPtr wurde in VBA eingeführt, um die 64-Bit-Version von Microsoft Office zu unterstützen. Auf einem 32-Bit-System wird es als Long und auf 64-Bit-Systemen als LongLong behandelt.
1 | Dim lngA als LongPtr |
Hinweis: LongPtr ist in Excel 2007 oder früher nicht verfügbar.
Dezimalwerte und lange Datentypen
Long-Variablen können keine Dezimalwerte speichern. Wenn Sie eine Dezimalzahl long übergeben, wird die Dezimalzahl gerundet, um die Dezimalzahl zu entfernen.
Wenn Sie daher das folgende Verfahren ausführen:
12345678 | Sub LngExampleB()'deklariere die lange VariableDim LngA als Long'die lange Variable füllenLngA = 3524,12'zeige die NachrichtenboxMsgBox lngAEnd Sub |
Der Dezimalwert würde abgerundet und die folgende Meldung zurückgegeben:
Aber dieser Code unten:
12345678 | Sub LngBeispielB()'deklariere die lange VariableDim LngA als Long'die lange Variable füllenLngA = 3524,12'zeige die NachrichtenboxMsgBox lngAEnd Sub |
Würde das folgende Meldungsfeld zurückgeben (aufrunden):
Dezimal / Doppelter Datentyp
Wenn Sie eine Dezimalstelle speichern möchten, müssen Sie eine Variable deklarieren, die Dezimalstellen zulässt. Es gibt 3 Datentypen, die Sie verwenden können - Single, Double oder Currency.
1 | Dim sngPreis als Single |
1 | Dim dblPreis als Double |
1 | Dim curPreis als Währung |
Der Datentyp Single rundet den Dezimalpunkt etwas anders als der Datentyp Double und Currency, daher ist es aus Gründen der Genauigkeit vorzuziehen, Double zu Single zu verwenden. Ein Double kann bis zu 12 Dezimalstellen haben, während Currency und Single beide bis zu 4 Dezimalstellen haben können.
Lange Variable auf Modul- oder globaler Ebene deklarieren
In den vorherigen Beispielen haben wir die Long-Variable innerhalb einer Prozedur deklariert. Mit einer Prozedur deklarierte Variablen können nur innerhalb dieser Prozedur verwendet werden.
Stattdessen können Sie Long-Variablen auf Modul- oder globaler Ebene deklarieren.
Modulebene
Modulebene Variablen werden am Anfang von Codemodulen mit dem deklariert Dim Stellungnahme.
Diese Variablen können mit jeder Prozedur in diesem Codemodul verwendet werden.
Globale Ebene
Globale Ebene Variablen werden auch am Anfang von Codemodulen deklariert. Anstatt jedoch die Dim Anweisung, verwenden Sie die Öffentlich -Anweisung, um anzugeben, dass die lange Variable für die Verwendung in Ihrem gesamten VBA-Projekt verfügbar ist.
1 | Öffentliche LngA als Long |
Wenn Sie die Variable long auf Modulebene deklarieren und dann versuchen, sie in einem anderen Modul zu verwenden, würde ein Fehler auftreten.
Wenn Sie jedoch das Schlüsselwort Public verwendet hätten, um die lange Variable zu deklarieren, würde der Fehler nicht auftreten und die Prozedur würde perfekt ausgeführt.
Lange als String gespeichert formatieren
Es kann vorkommen, dass Sie einen langen Datentyp in eine Zeichenfolge formatieren möchten - zum Beispiel ein Datum oder ein Währungssymbol anzeigen möchten.
Dazu verwenden Sie die Format-Funktion.
Folgende Vorgehensweise:
1234567891011 | UntertestLongToString()'String-Variable deklarierenDim strDate als Zeichenfolge'Long deklarieren und Wert auffüllenLngDate so lange dimmenlngDate = 44055'Konvertieren Sie die Länge in eine als Datum formatierte ZeichenfolgestrDate = Format(lngDate, "dd mmmm yyyy")'Ergebnis ansehenDebug.Print strDateEnd Sub |
würde das folgende Ergebnis zurückgeben:
und das folgende Verfahren
1234567891011 | UntertestLongtoCurrencyString()'String-Variable deklarierenDim strMoney As String'Long deklarieren und Wert auffüllenDim lngValue As LongLngWert = 44055'wandeln Sie die Länge in eine Zeichenfolge mit einem Währungssymbol umstrMoney = Format(lngValue, "$#,##0")'Ergebnis ansehenMsgBox strMoneyEnd Sub |
würde dieses Ergebnis zurückgeben: