Deze zelfstudie laat zien hoe u de CLng VBA-functie gebruikt om een uitdrukking om te zetten naar het lange integer-gegevenstype.
CLng-functie
VBA CLng Expressie converteren naar lang
De VBA CLng-functie kan worden gebruikt om uitdrukkingen te converteren naar een lang gegevenstype binnen de VBA-code.
123456 | Sub CLngExample_1()MsgBox CLng (12.34) 'Resultaat is: 12MsgBox CLng (12.345) 'Resultaat is: 12MsgBox CLng(-124) 'Resultaat is: -124MsgBox CLng(-12.34) 'Resultaat is: -12Einde sub |
VBA CLng-afronding
De VBA CLng-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 CLng-functie het dichtstbijzijnde even gehele getal.
1234567891011 | Sub CLngExample_2()MsgBox CLng(0.34) 'Resultaat is: 0MsgBox CLng(0.99) 'Resultaat is: 1MsgBox CLng(-124.95) 'Resultaat is: -125MsgBox CLng(1.5) 'Resultaat is: 2MsgBox CLng(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 CLng-functie naar het verwachte te veranderen.
1234567891011 | Sub CLngExample_3()MsgBox CLng(2.5)'Resultaat is: 2MsgBox CLng(2.5 + 0.001)'Resultaat is: 3MsgBox CLng(14.5)'Resultaat is: 14MsgBox CLng(14.5 + 0.001)'Resultaat is: 15Einde sub |
VBA-programmering | Code Generator werkt voor u!
VBA CLng Strings converteren naar Longs
De VBA CLng-functie kan worden gebruikt om strings om te zetten naar longs als de karakters in de string een betekenis hebben als getallen.
123456789101112131415161718 | Sub CLngExample_4()Dim StrEx As StringStrEx = "112"MsgBox CLng(StrEx)'Resultaat is: 112StrEx = "112.3"MsgBox CLng(StrEx)'Resultaat is: 112 112.3 is afgerondStrEx = "11,2"MsgBox CLng(StrEx)'Resultaat is: 112 , wordt genegeerdStrEx = "$ 112"MsgBox CLng(StrEx)'Resultaat is: 112 $ wordt genegeerdEinde sub |
VBA CLng Runtime-fout 13 Type komt niet overeen
Het gebruik van de VBA CLng-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 CLngExample_5()'De onderstaande code zal resulteren in een ERROR-bericht'CLng kan niet overweg met niet-numerieke tekensDim StrEx As StringStrEx = "Ab13"MsgBox CLng(StrEx)Einde sub |
VBA CLng Runtime-fout 6 Overloop
Het gebruik van de VBA CLng-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 -2.147.483.648 tot 2.147.483.647.
1234567 | Sub CLngExample_6()'De onderstaande code zal resulteren in een ERROR-bericht'CLng kan niet overweg met niet-numerieke tekens'Dim StrEx As StringStrEx = "2147483648"MsgBox CLng(StrEx)Einde sub |
Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!
VBA CLng Regionale instellingen
VBA CLng-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 CLngExample_7()Dim StrEx As StringStrEx = "1,9"MsgBox CLng(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 CLng(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 CLng Booleans converteren naar Longs
De VBA CLng-functie kan booleaanse variabelen naar longs converteren. Als de geëvalueerde expressie waar is, is de resulterende lange -1 en als de geëvalueerde uitdrukking onwaar is, is de resulterende lange 0.
1234567891011121314 | Sub CLngExample_8()Dim BoolEx As BooleanBoolEx = TrueMsgBox CLng(BoolEx)'Resultaat is: -1MsgBox CLng(2 = 2)'Resultaat is: -1BoolEx = FalseMsgBox CLng(BoolEx)'Resultaat is: 0MsgBox CLng(1 = 2)'Resultaat is: 0Einde sub |
VBA CLng Datums converteren naar Longs
VBA CLng-functie kan een datumvariabele converteren naar een lange. De geretourneerde waarde is het interne getal dat door Excel wordt gebruikt voor datumopslag, afgerond. Als dat aantal buiten de verwachte lange limieten voor VBA valt, krijgen we een Runtime-fout '6': Overflow.
123456789101112 | Sub CLngExample_9()Dim DateEx als datumDatumEx = #2/3/1940#MsgBox CLng(DateEx)'Resultaat is: 14644DatumEx = #8/7/1964#MsgBox CLng(DateEx)'Resultaat is: 23596DatumEx = #3/7/1934 11:32:04 AM#MsgBox CLng(DateEx)'Resultaat is: 12485Einde sub |