VBA-sträng till heltal - Använd CINT-funktionen för datakonvertering

Innehållsförteckning

Excel VBA-sträng till heltal

Sträng och heltal är vanliga datatyper, men ofta som en del av vår dataanalys kanske vi vill konvertera strängdatatypsvariabel till heldatatyp och detta är möjligt genom att använda "CINT" -funktionen i VBA.

Syntax för CINT-funktion

"CINT" kategoriseras som en datatypskonverteringsfunktion. Denna funktion konverterar tillhandahållet uttryck till en heltaldatatyp. När jag säger ”Uttryck” måste det vara ett numeriskt värde som ligger inom intervallet för heltaldatatyp i VBA, dvs. mellan -32768 och 32767.

Titta nu på syntaxen för CINT-funktionen i VBA.

  • Uttryck är värdet eller variabeln som innehåller värdet som ska konverteras till heltaldatatyp.
Anmärkning 1: Precis när du skickar måste uttrycksvärdet mellan -32768 till 32767. Annars kommer det att leda till "Over Flow Error", dvs tilldela värdet som överskrider datatypens gräns. Anmärkning 2: Uttryck måste vara ett numeriskt värde. Om uttrycket är strängvärde eller textvärde kommer det att orsaka ett "Run Time Error 13: Type Mismatch."

I den här artikeln visar vi dig om konvertering av heltaldatatyp från sträng till ett heltal med funktionen "CINT".

Exempel på CINT-funktion i VBA

Exempel 1

Låt oss utföra det första exemplet på att konvertera ett bråknummer till heltal datatyp.

Koda:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • I ovanstående kod för variabeln "IntegerNumber" har jag tilldelat värdet "2564.589".
  • I nästa rad har jag använt en CINT-funktion. Så det kommer att konvertera det angivna värdet till närmaste heltal.

Så vi fick resultatet - 2565, och det angivna numret är 2564.589. När decimalvärdet är mer än 0,5 CINT-funktioner avrundar siffran till nästa heltal. När decimalvärdet är mindre än eller lika med 0,5 CINT-funktioner avrundas ner till samma heltal.

För ett exempel, se nedanstående kod där antalet är mindre än 0,5

Koda:

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

Detta bör ge resultatet som 2564, inte 2565.

Exempel 2

Nu ska jag försöka tilldela numret som är mer än gränsen för datatypen Integer.

Koda:

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

Jag har tilldelat numret som “IntegerNumber = 51456.785” vilket är mer än gränsen för Integer-datatypsgränsen. Nu om jag försöker köra koden kommer det att kasta ett överflödsfel i VBA.

När det angivna numret är mer än datatypen för heltal kan du visa den enkla meddelandefältet som säger "Antalet är mer än gränsen för heltaldatatypen".

Koda:

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 Integer Data Type" Avsluta sub

Detta visar meddelandet som nedan när det angivna numret ligger utanför intervallet för heltaldatatyp.

Exempel # 3

Nu ska jag försöka tilldela det värde som inte är numeriskt.

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

Jag har tilldelat värdet ”Hej” vilket inte är numeriskt. Detta orsakar “typ felstämning fel”.

Istället för att visa felet så här, låt oss lägga en enkel informationsruta framför användaren. Koden nedan sätter meddelandefältet som säger "Det angivna uttrycksvärdet är icke-numeriskt, så kan inte konverteras".

Koda:

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 & ": Det angivna uttrycksvärdet är icke-numeriskt , Så kan inte konverteras "End Sub

Detta visar meddelandefältet nedan.

Saker att komma ihåg

  • CINT konverterar värde från en annan datatyp till en heltal datatyp.
  • Heltal kan hålla värden från -32768 till 32767, allt över dessa siffror orsakar ett överflödsfel.
  • Endast strängdatatyp innehåller numeriska data som kommer att konverteras till en heltal datatyp.

Rekommenderade artiklar

Detta har varit en guide till VBA String to Integer. Här diskuterar vi exempel på strängar till heltal i Excel VBA genom att använda CINT-funktionen tillsammans med praktiska exempel och nedladdningsbar excel-mall. Nedan följer några användbara artiklar relaterade till VBA -

  • VBA Split String in Array
  • VBA String to Date
  • VBA strängjämförelse
  • VBA Ersätt sträng

Intressanta artiklar...