Deze zelfstudie laat zien hoe u de CInt VBA-functie kunt gebruiken om een uitdrukking om te zetten naar het gegevenstype integer.
CInt-functie
VBA CInt Expressie converteren naar geheel getal
De VBA CInt-functie kan worden gebruikt om uitdrukkingen te converteren naar een integer gegevenstype in VBA-code. Het resulterende getal wordt afgerond om een geheel getal te worden.
123456 | Sub CIntExample_1()MsgBox CInt (12.34) 'Resultaat is: 12MsgBox CInt (12.345) 'Resultaat is: 12MsgBox CInt(-124) 'Resultaat is: -124'MsgBox CInt(-12.34) 'Resultaat is: -12Einde sub |
VBA CInt-afronding
De VBA CInt-functie rondt het decimale deel van een getaltype of een getalachtige uitdrukking af. Het wordt echter niet in alle gevallen correct afgerond. Wanneer het decimale deel 0,5 is, retourneert de VBA CInt-functie het dichtstbijzijnde even gehele getal.
12345678910111213141516 | Sub CIntExample_2()MsgBox CInt(0.34)'Resultaat is: 0MsgBox CInt(0.99)'Resultaat is: 1MsgBox CInt(-124.95)'Resultaat is: -125MsgBox CInt(1.5)'Resultaat is: 2MsgBox CInt(2.5)'Resultaat is: 2Einde sub |
We kunnen een relatief klein decimaal getal toevoegen aan onze verwachte decimale waarde om het gedrag van de VBA Cint-functie naar het verwachte te veranderen.
1234567891011 | Sub CIntExample_3()MsgBox CInt(2.5)'Resultaat is: 2MsgBox CInt(2.5 + 0.001)'Resultaat is: 3MsgBox CInt(14.5)'Resultaat is: 14MsgBox CInt(14.5 + 0.001)'Resultaat is: 15Einde sub |
VBA-programmering | Code Generator werkt voor u!
VBA CInt Strings converteren naar gehele getallen
De VBA CInt-functie kan worden gebruikt om tekenreeksen om te zetten in gehele getallen als de tekens in de tekenreeks een betekenis hebben als getallen.
123456789101112131415161718 | Sub CIntExample_4()Dim StrEx As StringStrEx = "112"MsgBox CInt(StrEx)'Resultaat is: 112StrEx = "112.3"MsgBox CInt(StrEx)'Resultaat is: 112 --> 112.3 is afgerondStrEx = "11,2"MsgBox CInt(StrEx)'Resultaat is: 112 --> , wordt genegeerdStrEx = "$ 112"MsgBox CInt(StrEx)'Resultaat is: 112 --> $ wordt genegeerdEinde sub |
VBA CInt Runtime-fout 13 Type komt niet overeen
Het gebruik van de VBA Cint-functie met tekenreeksen die niet-numerieke tekens bevatten of tekens die geen betekenis hebben in numerieke context, resulteert in een Runtime-fout '13': Type komt niet overeen.
1234567 | Sub CIntExample_5()'De onderstaande code zal resulteren in een ERROR-bericht'CInt kan niet overweg met niet-numerieke tekensDim StrEx As StringStrEx = "Ab13"MsgBox CInt(StrEx)Einde sub |
VBA CInt Runtime Error 6 Overflow
Het gebruik van de VBA Cint-functie met strings die resulteren in een waarde die kleiner of groter is dan het verwachte gehele getal, resulteert in een Runtime-fout '6': Overflow. Integer-gegevenstype in Excel heeft een verwachte waarde van -32768 tot 32767.
1234567 | Sub CIntExample_6()'De onderstaande code zal resulteren in een ERROR-bericht'CInt kan niet overweg met niet-numerieke tekens'Dim StrEx As StringStrEx = "1234567"MsgBox CInt(StrEx)Einde sub |
Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!
VBA CInt regionale instellingen
De VBA CInt-functie heeft ander gedrag bij het converteren van tekenreeksen met komma of punt. Het gebruikt de regionale instellingen van het besturingssysteem voor het decimaalteken en het cijferscheidingsteken.
12345678910111213141516 | Sub CIntExample_7()Dim StrEx As StringStrEx = "1,9"MsgBox CInt(StrEx)'Als Regionale instellingen , als scheidingsteken voor groepen hebben, dan'Resultaat is: 19'Als Regionale instellingen , als decimaalteken hebben, dan'Resultaat is: 2 (2 omdat 1,9 wordt afgerond)StrEx = "1.9"MsgBox CInt(StrEx)‘Als Regionale instellingen . als een scheidingsteken voor groepen dan'Resultaat is: 19‘Als Regionale instellingen . als een decimaal scheidingsteken dan'Resultaat is: 2 (2 omdat 1,9 wordt afgerond)Einde sub |
VBA-programmering | Code Generator werkt voor u!
VBA CInt Booleans converteren naar gehele getallen
De VBA Cint-functie kan booleaanse variabelen converteren naar gehele getallen. Als de geëvalueerde uitdrukking waar is, is het resulterende gehele getal -1 en als de geëvalueerde uitdrukking onwaar is, is het resulterende gehele getal 0.
12345678910 | Sub CIntExample_8()Dim BoolEx As BooleanBoolEx = TrueMsgBox CInt(BoolEx) 'Resultaat is: -1MsgBox CInt(2 = 2) 'Resultaat is: -1BoolEx = FalseMsgBox CInt(BoolEx) 'Resultaat is: 0MsgBox CInt(1 = 2) 'Resultaat is: 0Einde sub |
VBA CInt Datums converteren naar gehele getallen
De VBA Cint-functie kan een datumvariabele converteren naar een geheel getal. De geretourneerde waarde is het interne getal dat door Excel wordt gebruikt voor datumopslag, afgerond. Als dat aantal buiten de verwachte limieten voor gehele getallen voor VBA valt, krijgen we een Runtime-fout '6': Overflow.
123456789 | Sub CIntExample_9()Dim DateEx als datumDatumEx = #2/3/1940#MsgBox CInt(DateEx)'Resultaat is: 14644DatumEx = #8/7/1964#MsgBox CInt(DateEx)'Resultaat is: 23596Einde sub |