Konvertieren einer Zeichenkette in eine Zahl in VBA

Iqra Hasnain 26 Mai 2022
Konvertieren einer Zeichenkette in eine Zahl in VBA

In diesem Artikel wird erläutert, wie wir eine Zeichenfolge in VBA Excel in eine Zahl konvertieren können. Es gibt eine Schritt-für-Schritt-Anleitung und viele Beispiele für unser Verständnis.

Konvertieren eine Zeichenfolge in eine Zahl in VBA

Im VBA-Code ist die Konvertierung von als Text gespeicherten Zahlen in reelle Zahlen obligatorisch. Wir haben viele Konvertierungsmöglichkeiten.

Wir können Strings in Zahlen der Datentypen Byte, Integer, Long, Single, Double, Currency und Decimal umwandeln. Wir werden jede Konvertierung ausführlich mit Beispielen besprechen.

Konvertierung von String in Byte in VBA

Mit Hilfe des folgenden Codes können wir einen String ganz einfach in eine Zahl vom Datentyp Byte umwandeln.

# vba
byte = CByte(str)

Wir können die Funktion CByte() verwenden, um diese Konvertierung zu erreichen. Die obige Anweisung hat zwei Elemente: CByte() und String.

Die Funktion CByte() erzwingt die Änderung des Strings in einen Byte-Typ. CByte() wird oft verwendet, um die international bekannte String-Transformation in den Byte-Datentyp durchzuführen.

Einfach ausgedrückt, unterscheidet CByte() üblicherweise deutliche Dezimal-/Tausendertrennzeichen und viele Währungsoptionen, die vom Standort Ihres Computers abhängen. Der Bereich, den ein Byte-Datentyp enthalten kann, ist 0 bis 225. Wenn Ihre Zeichenfolge nicht in diesen Bereich fällt, tritt ein Fehler auf.

Hier ist ein Makrobeispiel, in dem wir convertStr als Argument haben, um einen String in ein Byte umzuwandeln.

# vba
Function convertStr(newStr As Variant)

    MsgBox (CByte(newStr))

End Function

Sub newFunc()
convertStr ("12")
End Sub

Ausgabe:

Konvertieren Sie die Zeichenfolge in eine Zahl als Byte in VBA

Konvertieren eine String in Integer in VBA

Mit Hilfe der folgenden Anweisung können Sie einen String einfach in eine Zahl vom Datentyp Integer umwandeln. Die Syntax dieser Funktion ist unten dargestellt.

# vba
CInt(newStr)

Es wird empfohlen, die Funktion Clnt() zu verwenden, um einen String in einen Integer-Datentyp zu ändern. Diese Funktion erzwingt die Änderung des Strings in den Integer-Datentyp.

Wenn eine Zeichenfolge einen Bruch enthält, wandelt diese Funktion ihn in eine Ganzzahl um. Wenn der Bruch genau 0,4 ist, ändert diese Funktion ihn in die nächste gerade Zahl.

Zum Beispiel:

# vba
0.4 will become 0.
1.6 and 2.4 both will become 2.
3.7 and 4.3 will become 4

Clnt() wird oft verwendet, um die international bekannte String-Transformation in den Integer-Datentyp durchzuführen. Einfach ausgedrückt, Clnt() unterscheidet üblicherweise deutliche Dezimal-/Tausendertrennzeichen und viele Währungsoptionen, die vom Standort unseres Computers abhängen.

Der Bereich, in dem ein Integer-Datentyp Zahlen aufnehmen kann, liegt zwischen -32.768 und 32.767. Wenn Ihre Zeichenfolge nicht in diesen Bereich fällt, tritt ein Fehler auf.

Lassen Sie uns ein Beispiel durchgehen und die Funktion CInt() wie unten gezeigt verwenden. Dieses Beispiel setzt newStr als Argument, um einen String in eine ganze Zahl umzuwandeln, wie unten gezeigt.

# vba
Function convertToInteger(newStr As Variant)

    MsgBox (CInt(newStr))

End Function

Sub newFunc()
convertToInteger ("12.5")
End Sub

Ausgabe:

Konvertieren Sie die Zeichenfolge in eine Zahl als int in VBA

Konvertieren eine String in Long in VBA

Wir können die Funktion CLng() verwenden, um diese Konvertierung zu erreichen. Die Syntax dieser Funktion ist unten dargestellt.

# vba
CLng(Str)

Wir können die Funktion CLng() verwenden, wenn es unser Ziel ist, einen String in mehrere lange Datentypen umzuwandeln. Die Elemente in dieser Anweisung sind CLng() und String.

Diese Funktion erzwingt die Änderung eines Strings in den langen Datentyp.

Wenn eine Zeichenfolge einen Bruch enthält, rundet diese Funktion ihn. Wenn der Bruch genau 0,4 ist, ändert diese Funktion ihn in die nächste gerade Zahl, wie unten gezeigt.

# vba
0.4 will become 0.
1.6 and 2.4 both will become 2.
3.7 and 4.3 will become 4

CLng() wird oft verwendet, um die international bekannte String-Transformation in lange Datentypen durchzuführen. Einfach ausgedrückt, CLng() unterscheidet normalerweise verschiedene Dezimal-/Tausendertrennzeichen und viele Währungsoptionen, die vom Standort Ihres Computers abhängen.

Der Bereich, in dem ein Integer-Datentyp Zahlen enthalten kann, ist -2.147.483.648 bis 2.147.483.647. Wenn Ihre Zeichenfolge nicht in diesen Bereich fällt, tritt ein Fehler auf.

Lassen Sie uns ein Beispiel durchgehen und die Funktion CLng() verwenden. In diesem Beispiel haben wir newStr als Argument gesetzt, um einen String in long umzuwandeln, wie unten gezeigt.

# vba
Function convertToLong(newStr As Variant)

    MsgBox (CLng(newStr))

End Function

Sub newFunc()
convertToLong ("15.7")
End Sub

Ausgabe:

Konvertieren Sie die Zeichenfolge in eine Zahl, die in VBA so lang ist

Der Long-Datentyp unterscheidet sich vom Integer-Datentyp nur durch eine Sache. Größere Zahlen sind in langen Datentypen akzeptabel.

Aber früher gab es nicht genug Speicher, und es wurde nicht empfohlen, lange Datentypen zu verwenden.

In der heutigen Zeit ist das Gedächtnis kein Problem mehr. Wir können den langen Datentyp anstelle einer Ganzzahl verwenden.

Konvertieren von String in Single in VBA

Wir können eine Zeichenfolge mit Hilfe der folgenden Syntax, wie unten gezeigt, leicht in eine Zahl eines einzelnen Datentyps umwandeln.

# vba
CSng(str)

Wir können die Funktion CSng() verwenden, um diese Konvertierung zu erreichen. Es gibt zwei Elemente in der obigen Anweisung, CSng() und String.

Diese Funktion erzwingt die Änderung einer Zeichenfolge in einen einzelnen Datentyp.

CSng() wird oft verwendet, um die international bekannte String-Transformation in einen einzelnen Datentyp durchzuführen. CSng() unterscheidet üblicherweise deutliche Dezimal-/Tausendertrennzeichen und Währungsoptionen, die vom Standort Ihres Computers abhängen.

Der Bereich, zwischen dem ein einzelner Datentyp Gleitkommazahlen enthalten kann, ist

  • 3,402823E38 bis -1,401298E-45, wenn die Werte negativ sind
  • 1,401298E-45 bis 3,402823E38 bei positiven Werten

Ein Fehler wird angezeigt, wenn Ihre Zeichenfolge nicht in diesen Bereich fällt. Lassen Sie uns, wie unten gezeigt, ein Beispiel durchgehen, in dem wir newStr als Argument setzen, um eine Zeichenfolge in eine einzelne zu ändern.

# vba
Function convertToSingle(newStr As Variant)

    MsgBox (CSng(newStr))

End Function

Sub newFunc()
convertToSingle ("1.3")
End Sub

Ausgabe:

Konvertieren Sie die Zeichenfolge in eine Zahl als Single in VBA

Konvertieren eine String in Double in VBA

Mit Hilfe der folgenden Anweisung können wir einen String einfach in mehrere Double-Datentypen umwandeln. Die Syntax dieser Funktion ist wie unten gezeigt.

# vba
CDbl(str)

Es wird empfohlen, die Funktion CDbl() zu verwenden, um einen String in einen Double-Datentyp zu ändern. Diese Funktion erzwingt die Änderung eines Strings in den Double-Datentyp.

CDbl() wird oft verwendet, um die international bekannte String-Transformation in einen doppelten Datentyp durchzuführen.

Mit einfachen Worten, CDbl() unterscheidet üblicherweise deutliche Dezimal-/Tausendertrennzeichen und viele Währungsoptionen, die vom Standort Ihres Computers abhängen.

Der Bereich, zwischen dem ein Double-Datentyp Gleitkommazahlen enthalten kann, ist unten angegeben.

  • -1,79769313486231E308 bis -4,94065645841247E-324, wenn die Werte negativ sind.
  • 4,94065645841247E-324 bis 1,79769313486232E308 bei positiven Werten.

Ein Fehler wird angezeigt, wenn unsere Zeichenfolge nicht in diesen Bereich fällt. Gehen wir, wie unten gezeigt, ein Beispiel durch, in dem wir newStr als Argument setzen, um einen String in einen Double zu ändern.

# vba
Function convertToDouble(newStr As Variant)

    MsgBox (CDbl(newStr))

End Function

Sub newFunc()
convertToDouble ("1.345")
End Sub

Ausgabe:

Konvertieren Sie die Zeichenfolge in eine Zahl als Double in VBA

String in Währung umwandeln in VBA

Mit Hilfe der folgenden Anweisung können Sie einen String ganz einfach in mehrere Währungsdatentypen umwandeln. Die Syntax der Funktion ist unten dargestellt.

# vba
CCur(newStr)

Es wird empfohlen, die Funktion CCur() zu verwenden, um einen String in einen Währungsdatentyp zu ändern. Diese Funktion erzwingt die Änderung einer Zeichenfolge in den Währungsdatentyp.

CCur() wird oft verwendet, um die international bekannte String-Transformation in einen Währungsdatentyp durchzuführen.

Es bedeutet, dass CCur() üblicherweise verschiedene Dezimal-/Tausendertrennzeichen und viele Währungsoptionen unterscheidet, die vom Standort Ihres Computers abhängen. Der Währungsdatentyp kann ganze Zahlen bis 10.000 enthalten.

Infolgedessen kann eine Währung 15 Zahlen links vom Dezimalkomma und vier Zahlen rechts vom Dezimalkomma enthalten. Der Bereich, zwischen dem eine Währung Zahlen enthalten kann, ist also:
-922.337.203.685.477,5808 bis 922.337.203.685.477,5807.

Ein Fehler wird angezeigt, wenn Ihre Zeichenfolge nicht in diesen Bereich fällt.

Wie unten gezeigt, gehen wir ein Beispiel durch, in dem wir newStr als Argument setzen, um einen String in eine Währung umzuwandeln.

# vba
Function convertToCurrency(newStr As Variant)

    msgBox(CCur(newStr))

End Function

Konvertieren eine String in Dezimal in VBA

Wir können die folgende Anweisung verwenden, um diese Konvertierung zu erreichen.

# vba
CDec(newStr)

Wir können die Funktion CDec() verwenden, wenn es unser Ziel ist, einen String in mehrere dezimale Datentypen umzuwandeln. Diese Funktion erzwingt die Änderung einer Zeichenfolge in den dezimalen Datenuntertyp des Variant-Datentyps.

In einfachen Worten, CDec() gibt eine Variante zurück, die in den Untertyp Decimal geändert wurde.

CDec() wird oft verwendet, um die international bekannte Transformation eines Strings in einen dezimalen Datentyp durchzuführen. Das bedeutet, dass CDec() im Allgemeinen verschiedene Dezimal-/Tausendertrennzeichen und viele Währungsoptionen unterscheidet, die vom Standort Ihres Computers abhängen.

Der Datentyp decimal kann ganze Zahlen mit einer variablen Potenz von 10 tragen. Die Potenz bezeichnet die Anzahl der Ziffern, die rechts vom Dezimalpunkt vorhanden sein können.

Der Bereich, in dem Dezimalzahlen Werte enthalten können, ist unten dargestellt.

  • Wenn die Skala 0 ist, also keine Dezimalstelle vorhanden ist, reicht der Bereich von 79.228.162.514.264.337.593.543.950.335 bis 79.228.162.514.264.337.593.543.950.335.
  • Bei 28 Dezimalstellen sind die größten und kleinsten Werte +7,9228162514264337593543950335 und -7,9228162514264337593543950335.
  • Die kleinsten Werte ohne Nullwerte sind -0,000000000000000000000000001 und 0,000000000000000000000000001.

Gehen wir, wie unten gezeigt, ein Beispiel durch, in dem wir newStr als Argument setzen, um eine Zeichenfolge in eine Dezimalzahl umzuwandeln.

# vba
Function convertToDecimal(newStr As Variant)

    msgBox(CDec(newStr))

End Function

Verwandter Artikel - VBA String