In diesem Tutorial wird gezeigt, wie Sie die CInt VBA-Funktion verwenden, um einen Ausdruck in den Integer-Datentyp zu konvertieren.
CInt-Funktion
VBA CInt Ausdruck in Ganzzahl konvertieren
Die VBA-CInt-Funktion kann verwendet werden, um Ausdrücke innerhalb von VBA-Code in den ganzzahligen Datentyp zu konvertieren. Die resultierende Zahl wird gerundet, um eine ganze Zahl zu werden.
123456 | Sub-CIntBeispiel_1()MsgBox CInt(12.34) 'Ergebnis ist: 12MsgBox CInt(12.345) 'Ergebnis ist: 12MsgBox CInt(-124) 'Ergebnis ist: -124MsgBox CInt(-12.34) 'Ergebnis ist: -12End Sub |
VBA CInt Rundung
Die VBA CInt-Funktion rundet den Dezimalteil eines Zahlentyps oder eines zahlenähnlichen Ausdrucks. Es wird jedoch nicht in allen Fällen richtig gerundet. Wenn der Dezimalteil 0,5 beträgt, gibt die VBA-CInt-Funktion die nächste gerade ganze Zahl zurück.
12345678910111213141516 | Sub-CIntExample_2()MsgBox CInt(0.34)'Ergebnis ist: 0MsgBox CInt(0.99)'Ergebnis ist: 1MsgBox CInt(-124.95)'Ergebnis ist: -125MsgBox CInt(1.5)'Ergebnis ist: 2MsgBox CInt(2.5)'Ergebnis ist: 2End Sub |
Wir können eine relativ kleine Dezimalzahl zu unserem erwarteten Dezimalwert hinzufügen, um das Verhalten der VBA-Cint-Funktion auf das erwartete zu ändern.
1234567891011 | Sub-CIntExample_3()MsgBox CInt(2.5)'Ergebnis ist: 2MsgBox CInt(2,5 + 0,001)'Ergebnis ist: 3MsgBox CInt(14.5)'Ergebnis ist: 14MsgBox CInt(14,5 + 0,001)'Ergebnis ist: 15End Sub |
VBA-Programmierung | Code Generator arbeitet für Sie!
VBA CInt Konvertieren von Strings in ganze Zahlen
Die VBA-CInt-Funktion kann verwendet werden, um Zeichenfolgen in ganze Zahlen zu konvertieren, wenn die Zeichen in der Zeichenfolge eine Bedeutung als Zahlen haben.
123456789101112131415161718 | Sub-CIntExample_4()Dim StrEx als StringStrEx = "112"MsgBox CInt(StrEx)'Ergebnis ist: 112StrEx = "112.3"MsgBox CInt(StrEx)'Ergebnis ist: 112 --> 112,3 wird gerundetStrEx = "11,2"MsgBox CInt(StrEx)'Ergebnis ist: 112 --> , wird ignoriertStrEx = "112 $"MsgBox CInt(StrEx)'Ergebnis ist: 112 --> $ wird ignoriertEnd Sub |
VBA CInt Laufzeitfehler 13 Typkonflikt
Die Verwendung der VBA-Cint-Funktion mit Zeichenfolgen, die nicht numerische Zeichen oder Zeichen enthalten, die im numerischen Kontext keine Bedeutung haben, führt zu einem Laufzeitfehler '13': Typkonflikt.
1234567 | Sub-CIntExample_5()'Der folgende Code führt zu einer FEHLER-Meldung'CInt kann keine nicht numerischen Zeichen verarbeitenDim StrEx als StringStrEx = "Ab13"MsgBox CInt(StrEx)End Sub |
VBA CInt Laufzeitfehler 6 Überlauf
Die Verwendung der VBA-Cint-Funktion mit Zeichenfolgen, die zu einem Wert führen, der kleiner oder größer als die erwartete ganze Zahl ist, führt zu einem Laufzeitfehler '6': Overflow. Der Integer-Datentyp in Excel hat einen erwarteten Wert von -32768 bis 32767.
1234567 | Sub-CIntExample_6()'Der folgende Code führt zu einer FEHLER-Meldung'Kann nicht mit nicht numerischen Zeichen umgehenDim StrEx als StringStrEx = "1234567"MsgBox CInt(StrEx)End Sub |
Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!
VBA Cint-Regionaleinstellungen
Die VBA-CInt-Funktion hat ein anderes Verhalten beim Konvertieren von Zeichenfolgen mit Komma oder Punkt. Es verwendet die Ländereinstellungen des Betriebssystems für Dezimaltrennzeichen und Zifferntrennzeichen.
12345678910111213141516 | Sub-CIntExample_7()Dim StrEx als StringStrEx = "1,9"MsgBox CInt(StrEx)‘Wenn regionale Einstellungen haben, als Gruppierungstrennzeichen, dann'Ergebnis ist: 19‘Wenn regionale Einstellungen haben, als Dezimaltrennzeichen, dann'Ergebnis ist: 2 (2 weil 1,9 gerundet wird)StrEx = "1,9"MsgBox CInt(StrEx)„Wenn die Regionaleinstellungen . als Gruppierungstrennzeichen dann'Ergebnis ist: 19„Wenn die Regionaleinstellungen . als Dezimaltrennzeichen dann'Ergebnis ist: 2 (2 weil 1,9 gerundet wird)End Sub |
VBA-Programmierung | Code Generator arbeitet für Sie!
VBA CInt Konvertierung von Booleschen in ganze Zahlen
Die VBA-Cint-Funktion kann boolesche Variablen in ganze Zahlen umwandeln. Wenn der ausgewertete Ausdruck wahr ist, ist die resultierende Ganzzahl -1, und wenn der ausgewertete Ausdruck falsch ist, ist die resultierende Ganzzahl 0.
12345678910 | Sub-CIntExample_8()Dim BoolEx As BooleanBoolEx = TrueMsgBox CInt(BoolEx) 'Ergebnis ist: -1MsgBox CInt(2 = 2) 'Ergebnis ist: -1BoolEx = FalschMsgBox CInt(BoolEx) 'Ergebnis ist: 0MsgBox CInt(1 = 2) 'Ergebnis ist: 0End Sub |
VBA CInt Konvertieren von Datumsangaben in Ganzzahlen
Die VBA-Cint-Funktion kann eine Datumsvariable in eine Ganzzahl konvertieren. Der zurückgegebene Wert ist die interne Zahl, die von Excel für die Datumsspeicherung verwendet wird, gerundet. Wenn diese Zahl außerhalb der erwarteten Integergrenzen für VBA liegt, erhalten wir einen Laufzeitfehler ’6’: Overflow.
123456789 | Sub-CIntExample_9()Dim DateEx als DatumDatumEx = #2/3/1940#MsgBox CInt(DateEx)'Ergebnis ist: 14644DatumEx = #8/7/1964#MsgBox CInt(DateEx)'Ergebnis ist: 23596End Sub |