Tento kurz předvede, jak pomocí funkce CInt VBA převést výraz na celočíselný datový typ.
Funkce CInt
VBA CInt Převést výraz na celé číslo
Funkci VBA CInt lze použít k převodu výrazů na celočíselný datový typ uvnitř kódu VBA. Výsledné číslo se zaokrouhlí na celé číslo.
123456 | Sub CIntExample_1 ()MsgBox CInt (12.34) 'Výsledek je: 12MsgBox CInt (12.345) 'Výsledek je: 12MsgBox CInt (-124) 'Výsledek je: -124MsgBox CInt (-12,34) 'Výsledek je: -12End Sub |
Zaokrouhlování VBA CInt
Funkce VBA CInt zaokrouhlí desetinnou část typu čísla nebo výrazu podobnému číslu. Ve všech případech se však nezaokrouhluje správně. Když je desetinná část 0,5, pak funkce VBA CInt vrátí nejbližší sudé celé číslo.
12345678910111213141516 | Sub CIntExample_2 ()MsgBox CInt (0,34)'Výsledek je: 0MsgBox CInt (0,99)„Výsledek je: 1MsgBox CInt (-124,95)„Výsledek je: -125MsgBox CInt (1,5)„Výsledek je: 2MsgBox CInt (2.5)„Výsledek je: 2End Sub |
K očekávané desítkové hodnotě můžeme přidat relativně malé desetinné číslo, abychom změnili chování funkce VBA Cint na očekávanou.
1234567891011 | Sub CIntExample_3 ()MsgBox CInt (2.5)„Výsledek je: 2MsgBox CInt (2,5 + 0,001)„Výsledek je: 3MsgBox CInt (14.5)„Výsledek je: 14MsgBox CInt (14,5 + 0,001)„Výsledek je: 15End Sub |
Programování VBA | Generátor kódu pracuje pro vás!
VBA CInt Převod řetězců na celá čísla
Funkci VBA CInt lze použít k převodu řetězců na celá čísla, pokud mají znaky v řetězci význam jako čísla.
123456789101112131415161718 | Sub CIntExample_4 ()Dim StrEx jako řetězecStrEx = "112"MsgBox CInt (StrEx)„Výsledek je: 112StrEx = "112,3"MsgBox CInt (StrEx)„Výsledek je: 112 -> 112,3 je zaokrouhlenoStrEx = "11,2"MsgBox CInt (StrEx)'Výsledek je: 112 ->, je ignorovánStrEx = "$ 112"MsgBox CInt (StrEx)'Výsledek je: 112 -> $ je ignorovánEnd Sub |
Chyba běhu VBA CInt 13 Neshoda typu
Použití funkce VBA Cint s řetězci, které obsahují nečíselné znaky nebo znaky, které nemají význam v číselném kontextu, bude mít za následek chybu Run-Time ‘13’: Neshoda typu.
1234567 | Sub CIntExample_5 ()„Níže uvedený kód bude mít za následek chybovou zprávu„CInt nemůže zpracovávat jiné než číselné znakyDim StrEx jako řetězecStrEx = "Ab13"MsgBox CInt (StrEx)End Sub |
Přetečení chyby 6 VBA CInt Run-Time
Použití funkce VBA Cint s řetězci, jejichž výsledkem je hodnota menší nebo větší než očekávané celé číslo, bude mít za následek chybu Run-Time ‘6’: Overflow. Celočíselný datový typ v Excelu má očekávanou hodnotu -32768 až 32767.
1234567 | Sub CIntExample_6 ()„Níže uvedený kód bude mít za následek chybovou zprávu„CInt nemůže zpracovávat jiné než číselné znakyDim StrEx jako řetězecStrEx = "1234567"MsgBox CInt (StrEx)End Sub |
Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!
Místní nastavení VBA CInt
Funkce VBA CInt má různé řetězce pro převod chování s čárkou nebo tečkou. Používá regionální nastavení operačního systému pro oddělovač desetinných míst a oddělovač číslic.
12345678910111213141516 | Sub CIntExample_7 ()Dim StrEx jako řetězecStrEx = "1,9"MsgBox CInt (StrEx)„Pokud to má regionální nastavení, pak jako oddělovač seskupení„Výsledek je: 19„Pokud to má místní nastavení, pak jako oddělovač desetinných míst'Výsledek je: 2 (2, protože 1,9 se zaokrouhlí)StrEx = "1,9"MsgBox CInt (StrEx)„Pokud to má místní nastavení. pak jako oddělovač seskupení„Výsledek je: 19„Pokud to má místní nastavení. jako oddělovač desetinných míst'Výsledek je: 2 (2, protože 1,9 se zaokrouhlí)End Sub |
Programování VBA | Generátor kódu pracuje pro vás!
VBA CInt Převod booleů na celá čísla
Funkce VBA Cint dokáže převádět logické proměnné na celá čísla. Pokud je vyhodnocený výraz pravdivý, je výsledné celé číslo -1 a pokud je vyhodnocený výraz nepravdivý, výsledné celé číslo je 0.
12345678910 | Sub CIntExample_8 ()Dim BoolEx As BooleanBoolEx = PravdaMsgBox CInt (BoolEx) 'Výsledek je: -1MsgBox CInt (2 = 2) 'Výsledek je: -1BoolEx = FalseMsgBox CInt (BoolEx) 'Výsledek je: 0MsgBox CInt (1 = 2) 'Výsledek je: 0End Sub |
VBA CInt Převádí data na celá čísla
Funkce VBA Cint dokáže převést proměnnou data na celé číslo. Vrácená hodnota je interní číslo používané Excelem pro zaokrouhlení úložiště data. Pokud je toto číslo mimo očekávané celočíselné limity pro VBA, pak se zobrazí chyba Run-Time ‘6’: Overflow.
123456789 | Sub CIntExample_9 ()Dim DateEx As DateDateEx = #2/3/1940 #MsgBox CInt (DateEx)„Výsledek je: 14644DateEx = #8/7/1964 #MsgBox CInt (DateEx)„Výsledek je: 23596End Sub |