VBA Val-funktion

Excel VBA Val-funktion

Valfunktion i vba kommer under strängfunktionerna , det är också en inbyggd funktion i VBA som används för att få de numeriska värdena från en datavariabel, antag att om en variabel har ett värde som A10 så ger valfunktionen oss 10 som utdata, det tar en sträng som ett argument och returnerar siffrorna i strängen.

VAL står för VALUE i VBA-terminologi. Denna funktion konverterar strängen som innehåller siffror till ett verkligt nummer. Om du till exempel anger textsträngen “1234 Global” returnerar den endast den numeriska delen, dvs. 1234.

Ofta, när vi laddar ner eller hämtar data från webbnummer, lagras vanligtvis som textvärden i ett kalkylark. Omvandling av text till siffror är den svåraste uppgiften om du inte är medveten om rätt funktion i Excel. Som en vanlig kalkylfunktion har vi en funktion som heter VALUE som konverterar alla strängar som representerar siffror till exakta tal med en enkel funktion i kalkylbladet. I den här artikeln visar vi hur detta kan uppnås i VBA med VAL-funktionen.

Syntax

Den har bara ett argument, dvs. sträng.

  • Sträng: Det är helt enkelt ett strängvärde vi försöker få ut den numeriska delen.

Så, VAL-funktionen omvandlar den medföljande strängen till ett numeriskt värde.

Obs! VAL-funktionen ignorerar alltid mellanslagstecken och fortsätter att läsa siffrorna efter mellanslagstecken eller -tecken.

Till exempel, om den medföljande strängen är "145 45 666 3" kommer den att ignorera mellanslagstecken och returnera resultatet som "145456663".

Exempel på VAL-funktion i Excel VBA

Du kan ladda ner denna VBA Val-funktion Excel-mall här - VBA Val-funktion Excel-mall

Exempel nr 1

Låt oss prova det första exemplet med ett enkelt nummer, dvs. ”14 56 47”

Nedanstående kod är för dig.

Koda:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Konvertera ovanstående som 145647 MsgBox k End Sub 

När du kör VBA-kod med F5-tangenten eller manuellt kommer den att returnera resultatet som "145647" genom att ignorera alla mellanslagstecken som visas i bilden nedan.

Exempel 2

I detta exempel ser vi vad resultatet av strängen är "+456".

Koda:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Konvertera ovanstående som 456 MsgBox k End Sub 

Du kan köra den här koden manuellt eller genom F5-tangenten för att returnera värdet som 456 genom att ignorera +456.

Exempel # 3

Låt nu prova samma nummer med ett negativt tecken.

Koda:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Konvertera ovanstående som -456 MsgBox k End Sub 

Den här koden returnerar värdet som -456 bara för att numret med operatörstecken ska visas.

Exempel # 4

Låt oss nu prova den här strängen "100 kg".

Koda:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignorerar KG och returnerar endast 100 MsgBox k End Sub 

Om du kör den här koden manuellt eller använder F5-tangenten ignorerar denna kod ovan "KG" och returnerar bara "100" i VBA-meddelanderutan.

Exempel # 5

Försök nu datumsträngen, dvs. ”14-05-2018”.

Koda:

Under Val_Exempel5 () Dim k Som variant k = Val ("14-05-2019") 'Returnerar 14 som resultat. MsgBox k End Sub

Ovanstående kod returnerar 14 som resultat eftersom VAL-funktionen bara kan hämta det numeriska värdet tills det hittar något annat än numeriskt tecken.

Exempel # 6

Försök nu strängen “7459Good456”.

Koda:

Under Val_Exempel6 () Dim k Som Variant k = Val ("7459 Bra 456") 'Returnerar 7459 som resultat. MsgBox k End Sub

Detta kommer att extrahera siffrorna tills den hittar det icke-numeriska tecknet, dvs resultatet är 7459. Även om det finns numeriska värden efter det icke-numeriska värdet ”Bra” ignorerar det helt siffror efter det.

Exempel nr 7

Försök nu strängvärdet “H 12456”.

Koda:

Under Val_Exempel7 () Dim k Som variant k = Val ("H 12456") 'Returnerar 0 som resultat. MsgBox k End Sub

Kör ovanstående kod med snabbtangenten F5 eller manuellt så returnerar den resultatet som noll. Eftersom det allra första tecknet i strängen vi har levererat är ett icke-numeriskt tecken så är resultatet noll.

Exempel # 8

Försök nu den här strängen “24545. 2 ”.

Koda:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Returnerar 24545.2 som resultat. MsgBox k End Sub

Koden returnerar resultatet som 24545.2 eftersom VBA VAL-funktionen betraktar teckenpunkten (.) Som decimaltecken och returnerar resultatet därefter.