VBA-streng til heltal - Bruk CINT-funksjonen for datakonvertering

Innholdsfortegnelse

Excel VBA-streng til heltal

Streng og heltall er vanlige datatyper, men ofte som en del av vår dataanalyse kan det være lurt å konvertere strengdatatypevariabelen til heltalldatatype, og dette er mulig ved å bruke "CINT" -funksjonen i VBA.

Syntaks for CINT-funksjonen

“CINT” er kategorisert som en datatypekonverteringsfunksjon. Denne funksjonen konverterer gitt uttrykk til en heltal datatype. Når jeg sier "Uttrykk", må det være en numerisk verdi som er i området for heltal datatype i VBA, dvs. mellom -32768 og 32767.

Se nå på syntaksen til CINT-funksjonen i VBA.

  • Uttrykk er verdien eller variabelen som inneholder verdien som skal konverteres til helhetdatatype.
Merknad 1: Akkurat når du sender uttrykksverdien må du være mellom -32768 og 32767. Ellers vil det føre til "Over Flow Error", dvs. tildele verdien som er over datatypens grense. Merknad 2: Uttrykk må være en numerisk verdi. Hvis uttrykket er strengverdi eller tekstverdi, vil det føre til en "Run Time Error 13: Type Mismatch."

I denne artikkelen vil vi vise deg om heltall datatypekonvertering fra streng til et heltall ved hjelp av funksjonen "CINT".

Eksempler på CINT-funksjon i VBA

Eksempel 1

La oss utføre det første eksemplet på å konvertere ett brøknummer til Integer Data Type.

Kode:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • I koden ovenfor for variabelen “IntegerNumber”, har jeg tildelt verdien som “2564.589”.
  • I neste linje har jeg brukt en CINT-funksjon. Så det vil konvertere den oppgitte verdien til nærmeste heltall.

Så vi fikk resultatet - 2565, og det medfølgende nummeret er 2564.589. Når desimalverdien er mer enn 0,5 CINT-funksjoner, rundes tallet opp til neste heltall. Når desimalverdien er mindre enn eller lik 0,5 CINT-funksjoner, rundes ned til samme heltall.

For et eksempel se koden nedenfor der tallet er mindre enn 0,5

Kode:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0.5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Dette skal gi resultatet som 2564, ikke 2565.

Eksempel 2

Nå vil jeg prøve å tilordne nummeret som er mer enn grensen for datatypen Integer.

Kode:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Jeg har tildelt nummeret som “IntegerNumber = 51456.785” som er mer enn grensen for Integer-datatypegrensen. Nå hvis jeg prøver å kjøre koden, vil det kaste en overflowfeil i VBA.

Når det oppgitte nummeret er mer enn Integer-datatypen, kan du vise den enkle meldingsboksen som sier "Number is More Than the Limit of Integer Data Type".

Kode:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: If Err.Number = 6 Then MsgBox IntegerNumber & "is More Than the Limit of the Ingerger Data Type" Slutt Sub

Dette vil vise meldingen som nedenfor når det oppgitte nummeret er utenfor rekkevidden til datatypen Heltall.

Eksempel 3

Nå skal jeg prøve å tildele verdien som ikke er numerisk.

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Jeg har tilordnet verdien som "Hei", som ikke er numerisk. Dette forårsaker “Type Mismatch Error”.

I stedet for å vise feilen som dette, la oss sette en enkel informasjonsboks foran brukeren. Koden nedenfor setter meldingsboksen som sier "Den oppgitte uttrykksverdien er ikke-numerisk, så den kan ikke konverteres".

Kode:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: If Err.Number = 13 Then MsgBox IntegerNumber & ": Den oppgitte uttrykksverdien er ikke-numerisk , Så kan ikke konverteres "End Sub

Dette viser meldingsboksen nedenfor.

Ting å huske

  • CINT konverterer verdi fra en annen datatype til en heltalsdatatype.
  • Heltall kan holde verdier fra -32768 til 32767, noe over disse tallene vil forårsake en overflytfeil.
  • Bare strengdatatypen inneholder numeriske data som vil bli konvertert til en heldatatype.

Anbefalte artikler

Dette har vært en guide til VBA String to Integer. Her diskuterer vi eksempler på streng til heltall i Excel VBA ved å bruke CINT-funksjonen sammen med praktiske eksempler og nedlastbar excel-mal. Nedenfor er noen nyttige artikler relatert til VBA -

  • VBA Split String in Array
  • VBA String to Date
  • VBA-strengesammenligning
  • VBA Erstatt streng

Interessante artikler...