Typkonvertierungsfunktionen
Jede Funktion wandelt einen Ausdruck in einen bestimmten Datentyp um.
Syntax
- CBool(expression)
- CByte(expression)
- CCur(expression)
- CDate(expression)
- CDbl(expression)
- CDec(expression)
- CInt(expression)
- CLng(expression)
- CLngLng(expression) Nur auf 64-Bit-Plattformen gültig.
- CLngPtr(expression)
- CSng(expression)
- CStr(expression)
- CVar(expression)
Das erforderliche expression-Argument ist ein beliebiger Zeichenfolgenausdruck oder ein numerischer Ausdruck.
Rückgabetypen
Der Funktionsname bestimmt den Rückgabetyp, wie im Folgenden dargestellt:
Funktion | Rückgabetyp | Bereich für expression-Argument |
---|---|---|
CBool | Boolean | Ein beliebige gültige Zeichenfolge oder ein numerischer Ausdruck. |
CByte | Byte | 0 bis 255 |
CCur | Currency | -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 |
CDate | Date | Jeder gültige Datumsausdruck. |
CDbl | Double | -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte. |
CDec | Decimal | 79.228.162.514.264.337.593.543.950.335 für unskalierte Zahlen, d. h. Zahlen ohne Dezimalstellen. Für Zahlen mit 28 Dezimalstellen ist der Bereich 7,9228162514264337593543950335. Die kleinstmögliche Zahl ungleich NULL ist 0,0000000000000000000000000001. |
CInt | Integer | -32.768 bis 32.767; Brüche werden gerundet. |
CLng | Long | -2.147.483.648 bis 2.147.483.647; Brüche werden gerundet. |
CLngLng | LongLong | -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807; Brüche werden gerundet. (Nur auf 64-Bit-Plattformen gültig.) |
CLngPtr | LongPtr | -2.147.483.648 bis 2.147.483.647 auf 32-Bit-Systemen -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 auf 64-Bit-Systemen; Brüche werden für 32-Bit- und 64-Bit-Systeme gerundet. |
CSng | Single | -3,402823E38 bis -1,401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E38 für positive Werte. |
CStr | String | Rückgaben für CStr sind vom expression-Argument abhängig. Informationen finden Sie in der folgenden Tabelle. |
CVar | Variant | Gleicher Bereich wie Double für numerische Werte. Gleicher Bereich wie String für nicht numerische Werte. |
Hinweise
Wenn der an die Funktion übergebene Ausdruck außerhalb des Bereichs des Datentyps liegt, in den er konvertiert werden soll, tritt ein Fehler auf.
Hinweis
Konvertierungsfunktionen müssen verwendet werden, um LongLong (einschließlich LongPtr auf 64-Bit-Plattformen) kleineren ganzzahligen Typen zuzuweisen. Implizite Umwandlungen von LongLong -Ausdrücken auf kleinere Integrale sind nicht zulässig.
Im Allgemeinen können Sie Ihren Code mithilfe der Funktionen zur Umwandlung des Datentyps so dokumentieren, dass angezeigt wird, dass das Ergebnis eines Vorgangs als bestimmter Datentyp und nicht als Standard-Datentyp angezeigt werden soll. Verwenden Sie beispielsweise CCur, um Währungsarithmetik zu erzwingen, wenn normalerweise Arithmetik mit einfacher Genauigkeit, doppelter Genauigkeit oder einer ganzen Zahl auftreten würde.
Sie sollten die Typkonvertierungsfunktionen anstelle von Val verwenden, um international offene Konvertierungen von einem Datentyp in einen anderen bereitzustellen. Wenn Sie beispielsweise CCur verwenden, werden unterschiedliche Dezimaltrennzeichen, unterschiedliche Tausendertrennzeichen und verschiedene Währungsoptionen je nach der Gebietsschemaeinstellung Ihres Computers korrekt erkannt.
Wann ist der Bruchteil genau 0,5 beträgt, wird dieser von CInt und CLng immer auf die nächste gerade Zahl gerundet. Beispielsweise wird 0,5 auf 0 und 1,5 auf 2 gerundet. CInt und CLng unterscheiden sich von den Fix- und Int-Funktionen, die den Bruchteil einer Zahl nicht runden, sondern abschneiden. Außerdem geben Fix und Int immer einen Wert desselben Typs zurück, der auch übergeben wurde.
Verwenden Sie die IsDate-Funktion, um zu ermitteln, ob date in ein Datum oder eine Uhrzeit konvertiert werden kann. CDate erkennt Datumsliterale und Uhrzeitliterale sowie einige Zahlen, die in den Bereich zulässiger Datumsangaben fallen. Beim Konvertieren einer Zahl in ein Datum, wird der ganzzahlige Teil in ein Datum umgewandelt. Bruchteile der Zahl werden in eine Uhrzeit umgewandelt, beginnend mit Mitternacht.
CDate erkennt Datumsformate entsprechend den Gebietsschemaeinstellungen Ihres Systems. Die richtige Reihenfolge von Tag, Monat und Jahr kann möglicherweise nicht festgestellt werden, wenn sie in einem Format eingegeben wird, das nicht einer der erkannten Datumseinstellungen entspricht. Außerdem wird ein langes Datumsformat nicht erkannt, wenn es auch die Zeichenfolge für den Wochentag enthält.
Eine CVDate-Funktion wird auch zum Zwecke der Kompatibilität mit früheren Versionen von Visual Basic bereitgestellt. Die Syntax der CVDate-Funktion ist identisch mit der CDate-Funktion; CVDate gibt jedoch Variant zurück, dessen Untertyp Date anstelle eines tatsächlichen Date-Typs ist. Da es nun einen systeminternen Date-Typ gibt, ist CVDate nicht erforderlich. Derselbe Effekt kann erzielt werden, indem ein Ausdruck in Date konvertiert und diesem dann Variant zugewiesen wird. Diese Vorgehensweise entspricht der Umwandlung aller anderen systeminternen Typen in ihre entsprechenden Variant-Untertypen.
Hinweis
Die CDec -Funktion gibt keinen einzelnen Datentyp zurück; stattdessen gibt sie stets eine Variante zurück, deren Wert in einen Decimal -Subtyp umgewandelt wurde.
Rückgaben für CStr hängen vom Ausdrucksargument ab.
Bei Ausdruck | gibt CStr zurück: |
---|---|
Boolean | Eine Zeichenfolge mit True oder False. |
Date | Eine Zeichenfolge mit einem Datum im kurzen Datumsformat Ihres Systems. |
Empty | Eine Zeichenfolge der Länge Null (""). |
Fehler | Eine Zeichenfolge, die das Wort Fehler gefolgt von der Fehlernummer enthält. |
Null | Einen Laufzeitfehler. |
Andere numerische Zeichenfolge | Eine Zeichenfolge, die die Zahl enthält. |
Beispiel zur CBool-Funktion
Dieses Beispiel verwendet die CBool-Funktion, um einen Ausdruck in Boolean zu konvertieren. Wenn der Ausdruck in einen Wert ungleich NULL ausgewertet wird, gibt CBooltrue, andernfalls wird false zurückgegeben.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
Beispiel zur CByte-Funktion
Dieses Beispiel verwendet die CByte-Funktion, um einen Ausdruck in Byte zu konvertieren.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Beispiel zur CCur-Funktion
Dieses Beispiel verwendet die CCur-Funktion, um einen Ausdruck in Currency zu konvertieren.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2) ' Convert result of MyDouble * 2
' (1086.429176) to a
' Currency (1086.4292).
Beispiel zur CDate-Funktion
Dieses Beispiel verwendet die CDate-Funktion, um einen Ausdruck in Date zu konvertieren. Im Allgemeinen wird das Hartcodieren von Datums- und Uhrzeitangaben als Zeichenfolgen (wie in diesem Beispiel dargestellt) nicht empfohlen. Verwenden Sie stattdessen Datums- und Uhrzeitliterale, z. B. #2/12/1969#
und #4:45:23 PM#
.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" ' Define date.
MyShortDate = CDate(MyDate) ' Convert to Date data type.
MyTime = "4:35:47 PM" ' Define time.
MyShortTime = CDate(MyTime) ' Convert to Date data type.
Beispiel zur CDbl-Funktion
Dieses Beispiel verwendet die CDbl-Funktion, um einen Ausdruck in Double zu konvertieren.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784) ' MyCurr is a Currency.
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' Convert result to a Double.
Beispiel zur CDec-Funktion
Dieses Beispiel verwendet die CDec -Funktion, um einen numerischen Wert in Decimal zu konvertieren.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Beispiel zur CInt-Funktion
Dieses Beispiel verwendet die CInt-Funktion, um einen numerischen Wert in Integer zu konvertieren.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Beispiel zur CLng-Funktion
Dieses Beispiel verwendet die CLng-Funktion, um einen numerischen Wert in Long zu konvertieren.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1) ' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2) ' MyLong2 contains 25428.
Beispiel zur CSng-Funktion
Dieses Beispiel verwendet die CSng-Funktion, um einen numerischen Wert in Single zu konvertieren.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1) ' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2) ' MySingle2 contains 75.34216.
Beispiel zur CStr-Funktion
Dieses Beispiel verwendet die CStr -Funktion, um einen numerischen Wert in String zu konvertieren.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble) ' MyString contains "437.324".
Beispiel zur CVar-Funktion
Dieses Beispiel verwendet die CVar-Funktion, um einen Ausdruck in Variant zu konvertieren.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & 000) ' MyVar contains the string
' 4534000.
Siehe auch
- Zusammenfassung der Datentypen
- Glossar zum Visual Basic-Editor (VBE)
- Konzeptuelle Visual Basic-Themen
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.