VBA Val-functie

Excel VBA Val-functie

Val-functie in vba valt onder de string-functies, het is ook een ingebouwde functie in VBA die wordt gebruikt om de numerieke waarden van een gegevensvariabele te krijgen, stel dat als een variabele waarde heeft als A10, de val-functie ons 10 als uitvoer geeft, het neemt een string als argument en geeft de getallen terug die aanwezig zijn in de string.

VAL staat voor VALUE in VBA-terminologie. Deze functie zet de string met getallen om in een werkelijk getal. Als u bijvoorbeeld de tekstreeks “1234 Globaal” opgeeft, wordt alleen het numerieke deel, dwz 1234, geretourneerd.

Wanneer we de gegevens van webnummers downloaden of ophalen, worden ze vaak meestal opgeslagen als tekstwaarden in een spreadsheet. Het omzetten van tekst naar cijfers is de moeilijkste taak als u niet weet wat de juiste functie is in Excel. Als een gewone werkbladfunctie hebben we een functie met de naam VALUE die alle tekenreeksen die getallen vertegenwoordigen naar exacte getallen converteert met een eenvoudige functie in het werkblad. In dit artikel laten we zien hoe dit in VBA kan worden bereikt met behulp van de VAL-functie.

Syntaxis

Het heeft maar één argument, namelijk String.

  • String: het is gewoon een stringwaarde die we proberen om het numerieke deel eruit te halen.

Dus de VAL-functie converteert de geleverde string naar een numerieke waarde.

Opmerking: de VAL-functie negeert altijd de spatie-tekens en gaat door met het lezen van de cijfers na de spatie of de tekens.

Als de opgegeven tekenreeks bijvoorbeeld "145 45 666 3" is, worden de spatie-tekens genegeerd en wordt het resultaat geretourneerd als "145456663".

Voorbeelden van VAL-functie in Excel VBA

U kunt deze VBA Val Function Excel-sjabloon hier downloaden - VBA Val Function Excel-sjabloon

Voorbeeld 1

Laten we het eerste voorbeeld proberen met een eenvoudig getal, bijv. "14 56 47"

De onderstaande code is voor jou.

Code:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Converteer het bovenstaande naar 145647 MsgBox k End Sub 

Wanneer u VBA-code uitvoert met de F5-toets of handmatig, wordt het resultaat geretourneerd als "145647" door alle spatie-tekens te negeren, zoals weergegeven in de onderstaande afbeelding.

Voorbeeld # 2

In dit voorbeeld zullen we zien wat het resultaat van de string is "+456".

Code:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Converteer het bovenstaande naar 456 MsgBox k End Sub 

U kunt deze code handmatig uitvoeren of via de F5-toets om de waarde als 456 te retourneren door +456 te negeren.

Voorbeeld # 3

Laten we nu hetzelfde nummer proberen met een minteken.

Code:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Converteer het bovenstaande naar -456 MsgBox k End Sub 

Deze code retourneert de waarde als -456 alleen omdat het nummer met het operatorteken moet worden weergegeven.

Voorbeeld # 4

Laten we nu eens deze snaar "100 Kg" proberen.

Code:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Negeert KG en retourneert alleen 100 MsgBox k End Sub 

Als u deze code handmatig uitvoert of de F5-toets gebruikt, negeert deze bovenstaande code "KG" en retourneert alleen "100" in het VBA-berichtvenster.

Voorbeeld # 5

Probeer nu de datumreeks, dwz "14-05-2018".

Code:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Retourneert 14 als resultaat. MsgBox k End Sub

De bovenstaande code retourneert 14 als resultaat, omdat de VAL-functie alleen de numerieke waarde kan ophalen totdat deze een ander dan numeriek teken vindt.

Voorbeeld # 6

Probeer nu de string "7459Good456".

Code:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Geeft als resultaat 7459. MsgBox k End Sub

Dit zal de getallen extraheren totdat het het niet-numerieke teken vindt, dwz het resultaat is 7459. Ook al staan ​​er numerieke waarden achter de niet-numerieke waarde "Goed", het negeert daarna de cijfers volledig.

Voorbeeld # 7

Probeer nu de stringwaarde "H 12456".

Code:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Retourneert 0 als het resultaat. MsgBox k End Sub

Voer de bovenstaande code uit met de sneltoets F5 of handmatig, waarna het resultaat als nul wordt geretourneerd. Omdat het allereerste teken van de string die we hebben opgegeven een niet-numeriek teken is, is het resultaat nul.

Voorbeeld # 8

Probeer nu deze string “24545. 2 ”.

Code:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Retourneert 24545,2 als het resultaat. MsgBox k End Sub

De code retourneert het resultaat als 24545.2 omdat de VBA VAL-functie de tekenpunt (.) Beschouwt als het decimaalteken en het resultaat dienovereenkomstig retourneert.