VBA Converteer tekststring naar nummer

Mogelijk moet u getallen die als tekst zijn opgeslagen, converteren naar werkelijke getallen in uw VBA-code. In deze zelfstudie gaan we de functies bespreken die u moet gebruiken om een ​​tekenreeks om te zetten in een geheel getal, lang, dubbel, decimaal of valutagegevenstype (Klik hier voor meer informatie over het converteren van getallen naar tekenreeksen)

Converteer tekenreeks naar geheel getal

U kunt de functie CInt of CLng gebruiken om een ​​string om te zetten in een geheel getal. Als de breuk kleiner is dan 0,5 zal de functie naar beneden afronden, als de breuk groter is dan of gelijk is aan 0,5 zal de functie naar boven afronden. De volgende code converteert een string naar een geheel getal:

1 MsgBox CInt("7.55")

Het resultaat is:

De volgende code gebruikt de CLng-functie om een ​​string naar een geheel getal te converteren:

1 MsgBox CLng("13.5")

Het resultaat is:

Opmerking: U kunt de CInt- of CLng-functie gebruiken om een ​​tekenreeks om te zetten in een geheel getal of lange (respectievelijk) gegevenstypen. Het gegevenstype Long is hetzelfde als een gegevenstype met geheel getal, behalve dat grotere getallen zijn toegestaan. In het verleden was het onderscheid vereist vanwege geheugenbeperkingen. Bij moderne programmering is er geen reden om het lange gegevenstype niet te gebruiken, aangezien geheugen geen probleem meer is. Het is dus altijd beter om een ​​lang gegevenstype te gebruiken in plaats van een geheel getal.

U kunt het onmiddellijke venster gebruiken om te zien hoe de waarde zou worden verwerkt als deze niet naar een geheel getal zou worden geconverteerd:

1 Debug.Print "13.5" + "13.5"


Meestal wordt de tekst opgeslagen als een variabele en moet deze variabele worden geconverteerd naar een numeriek gegevenstype zoals weergegeven in de onderstaande code:

1234567 Sub Using_Variables()Dim waardeOne As StringwaardeEen = 5MsgBox CLng(valueOne) + CLng(valueOne)Einde sub

String naar decimaal converteren

U kunt de functie CDbl of CDec gebruiken om een ​​tekenreeks naar een decimaalteken om te zetten. De volgende code converteert een string naar een dubbel gegevenstype:

1 MsgBox CDbl("9.1819")

Het resultaat is:

De volgende code converteert een tekenreeks naar een decimaal gegevenstype:

1 MsgBox CDec("13.57") + CDec("13.4")

Het resultaat is:

U kunt het onmiddellijke venster gebruiken om te zien hoe de waarde zou worden verwerkt als deze niet zou worden geconverteerd naar een dubbel of decimaal gegevenstype:

1 Debug.Print "13.57" + "13.4"

Het resultaat is:

Opmerking: Het decimale gegevenstype kan grotere getallen bevatten dan het dubbele gegevenstype, dus het is altijd aan te raden om het decimale gegevenstype te gebruiken als u niet zeker bent.

Tekenreeks naar valuta converteren

U kunt de functie CCur gebruiken om een ​​tekenreeks om te zetten in een valuta. De volgende code converteert een tekenreeks naar een valutagegevenstype:

1 Bereik ("A1"). Waarde = CCur ("18.5")

Het resultaat is:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave