VBA String to Integer - Gebruik CINT-functie voor dataconversie

Excel VBA String naar geheel getal

String en Integer zijn veelvoorkomende gegevenstypen, maar vaak willen we als onderdeel van onze gegevensanalyse een variabele van het gegevenstype van de tekenreeks omzetten in een gegevenstype met gehele getallen en dit is mogelijk door de functie "CINT" in VBA te gebruiken.

Syntaxis van CINT-functie

"CINT" is gecategoriseerd als een datatype-conversiefunctie. Deze functie zet de opgegeven expressie om in een gegevenstype Geheel getal. Als ik "Expression" zeg, moet dit een numerieke waarde zijn die in het bereik van het gegevenstype Geheel getal in VBA ligt, dwz tussen -32768 en 32767.

Kijk nu naar de syntaxis van de CINT-functie in VBA.

  • Expressie is de waarde of de variabele die de waarde bevat die moet worden geconverteerd naar het gegevenstype geheel getal.
Opmerking 1: Net wanneer u de waarde van de expressie doorgeeft, moet deze tussen -32768 en 32767 liggen. Anders leidt dit tot "Over Flow Error", dwz het toewijzen van de waarde die de limiet van het gegevenstype overschrijdt. Opmerking 2: uitdrukking moet een numerieke waarde zijn. Als de uitdrukking een tekenreekswaarde of tekstwaarde is, veroorzaakt dit een "Runtime-fout 13: Type komt niet overeen".

In dit artikel zullen we u laten zien over de conversie van het gegevenstype gehele getallen van string naar een geheel getal met behulp van de functie "CINT".

Voorbeelden van CINT-functie in VBA

Voorbeeld 1

Laten we het eerste voorbeeld uitvoeren van het converteren van een breukgetal naar het gegevenstype geheel getal.

Code:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • In de bovenstaande code voor de variabele "IntegerNumber", heb ik de waarde toegewezen als "2564.589".
  • In de volgende regel heb ik een CINT-functie toegepast. Het converteert dus de opgegeven waarde naar het dichtstbijzijnde gehele getal.

Dus we hebben het resultaat - 2565, en het opgegeven nummer is 2564.589. Als de decimale waarde groter is dan 0,5, ronden CINT-functies het getal naar boven af ​​naar het volgende gehele getal. Als de decimale waarde kleiner is dan of gelijk is aan 0,5, worden CINT-functies naar beneden afgerond op hetzelfde geheel getal.

Kijk voor een voorbeeld naar de onderstaande code waar het aantal kleiner is dan 0,5

Code:

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

Dit zou het resultaat moeten geven als 2564, niet als 2565.

Voorbeeld 2

Nu zal ik proberen het nummer toe te wijzen dat meer is dan de limiet van het gegevenstype Geheel getal.

Code:

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

Ik heb het nummer toegewezen als "IntegerNumber = 51456.785", wat meer is dan de limiet van de limiet voor het gegevenstype Integer. Als ik nu de code probeer uit te voeren, wordt er een overloopfout in VBA gegenereerd.

Telkens wanneer het opgegeven getal meer is dan het gegevenstype Geheel getal, wordt het eenvoudige berichtvenster weergegeven met de tekst "Getal is meer dan de limiet van het gegevenstype Geheel getal".

Code:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 Bij fout GoTo Message: IntegerResult = CInt (IntegerNumber) Bericht: If Err.Number = 6 Then MsgBox IntegerNumber & "is meer dan de limiet van het gegevenstype Integer" Einde Sub

Dit toont het bericht zoals het onderstaande wanneer het opgegeven nummer buiten het bereik van het gegevenstype Geheel getal valt.

Voorbeeld # 3

Nu zal ik proberen de waarde toe te wijzen die niet numeriek is.

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

Ik heb de waarde toegewezen als "Hallo", wat niet numeriek is. Dit veroorzaakt "Type Mismatch Error".

In plaats van de fout op deze manier weer te geven, laten we een eenvoudig informatievenster voor de gebruiker plaatsen. De onderstaande code plaatst het berichtvenster met de tekst "De opgegeven expressiewaarde is niet-numeriek, dus kan niet worden geconverteerd".

Code:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hallo" Bij fout GoTo-bericht: IntegerResult = CInt (IntegerNumber) Bericht: If Err.Number = 13 Then MsgBox IntegerNumber & ": de opgegeven expressiewaarde is niet-numeriek , Kan dus niet worden omgezet "End Sub

Hierdoor wordt het onderstaande berichtvenster weergegeven.

Dingen om te onthouden

  • CINT converteert waarde van een ander gegevenstype naar een gegevenstype met gehele getallen.
  • Geheel getal kan waarden van -32768 tot 32767 bevatten. Alles boven deze getallen zal een overloopfout veroorzaken.
  • Alleen het gegevenstype tekenreeks bevat numerieke gegevens die worden geconverteerd naar een gegevenstype met gehele getallen.

Aanbevolen artikelen

Dit is een gids voor VBA String to Integer. Hier bespreken we voorbeelden van string naar integer in Excel VBA met behulp van de CINT-functie, samen met praktische voorbeelden en downloadbare Excel-sjabloon. Hieronder staan ​​enkele nuttige artikelen met betrekking tot VBA -

  • VBA Split String in Array
  • VBA-tekenreeks tot nu toe
  • VBA String-vergelijking
  • VBA vervangt string

Interessante artikelen...