VBA-Long-Datentyp (Dim-Variable)

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:

wave wave wave wave wave