VBA VAL | Hogyan kell használni a VBA VAL funkciót? (példákkal)

Excel VBA Val funkció

A vba Val függvénye a string függvények alá tartozik, ez is egy beépített függvény a VBA-ban, amelyet arra használnak, hogy egy adatváltozóból megkapja a numerikus értékeket. Tegyük fel, hogy ha egy változó értéke A10, akkor a val függvény 10-et ad nekünk egy karakterláncot vesz fel argumentumként, és visszaadja a karakterláncban szereplő számokat.

A VAL az VBA kifejezés a VBA terminológiájában. Ez a függvény a számokat tartalmazó karakterláncot tényleges számgá alakítja. Például, ha megadja az „1234 Global” szöveget, akkor csak a numerikus részt adja vissza, azaz 1234.

Gyakran előfordul, hogy amikor internetes számokról töltjük le vagy szerezzük be az adatokat, általában szöveges értékként tároljuk egy táblázatban. A szöveg számokká alakítása a legnehezebb feladat, ha nincs tisztában az excel helyes funkciójával. Rendes munkalapfüggvényként van egy VALUE nevű függvényünk, amely az összes számokat ábrázoló karakterláncot a munkalap egyszerű függvényével pontos számokká alakítja. Ebben a cikkben megmutatjuk, hogyan lehet ezt elérni a VBA-ban a VAL függvény használatával.

Szintaxis

Csak egy argumentuma van, azaz String.

  • Karakterlánc: Ez egyszerűen egy string érték, amellyel megpróbáljuk kihozni belőle a numerikus részt.

Tehát a VAL függvény konvertálja a mellékelt karakterláncot számértékre.

Megjegyzés: A VAL függvény mindig figyelmen kívül hagyja a szóköz karaktereket, és a szóköz vagy karakterek után olvassa tovább a számokat.

Például, ha a mellékelt karakterlánc „145 45 666 3”, akkor figyelmen kívül hagyja a szóközöket, és az eredményt „145456663” -ként adja vissza.

Példák a VAL függvényre az Excel VBA-ban

Ezt a VBA Val Function Excel sablont innen töltheti le - VBA Val Function Excel sablont

1. példa

Próbáljuk ki az első példát egyszerű számmal, azaz „14 56 47”

Az alábbi kód az Ön számára.

Kód:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Konvertálja a fentieket 145647 MsgBox k End Sub 

Ha a VBA kódot F5 billentyűvel vagy manuálisan futtatja, az eredmény „145647” néven jelenik meg, az összes szóköz figyelmen kívül hagyásával, az alábbi képen látható módon.

2. példa

Ebben a példában meglátjuk, hogy a karakterlánc eredménye „+456”.

Kód:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Konvertálja a fentieket 456 MsgBox k-nak Sub End 

Futtathatja ezt a kódot manuálisan vagy az F5 billentyű segítségével, hogy az értéket 456-ként adja vissza a +456 figyelmen kívül hagyásával.

3. példa

Most próbáljuk meg ugyanazt a számot negatív előjellel.

Kód:

 Sub Val_Példa3 () Dim k As Variant k = Val ("- 456") 'Konvertálja a fentieket -456 MsgBox k End Sub 

Ez a kód csak azért ad eredményt -456 értékként, mert meg kell jeleníteni az operátor előjellel ellátott számot.

4. példa

Most próbáljuk ki ezt a „100 Kg” karakterláncot.

Kód:

 Sub Val_Példa4 () Dim k As Variant k = Val ("100 KG") 'Nem veszi figyelembe a KG-t, és csak 100 MsgBox-ot ad vissza k End Sub 

Ha ezt a kódot manuálisan vagy az F5 billentyűvel futtatja, akkor a fenti kód figyelmen kívül hagyja a „KG” szót, és csak a „100” értéket adja vissza a VBA üzenetmezőben.

5. példa

Most próbálkozzon a dátum karakterlánccal, azaz „2018.05.14.”.

Kód:

Al Val_Example5 () Dim k As Variant k = Val ("2019-05-14") '14-et ad eredményül. MsgBox k End Sub

A fenti kód 14-et ad eredményül, mert a VAL függvény csak addig tudja lekérni a numerikus értéket, amíg más számjegyű karaktert nem talál.

6. példa

Most próbálkozzon a „7459Good456” karakterlánccal.

Kód:

Sub Val_Példa6 () Dim k As Variant k = Val ("7459 Jó 456") '7459-et ad eredményül. MsgBox k End Sub

Ez addig vonja ki a számokat, amíg meg nem találja a nem numerikus karaktert, azaz az eredmény 7459. Hiába vannak számértékek a „Jó” nem numerikus érték után, az ezt követő számokat teljesen figyelmen kívül hagyja.

7. példa

Most próbálkozzon a "H 12456" karakterlánccal.

Kód:

Val_Példa7 () Dim k As variáns k = Val ("H 12456") '0-t ad eredményül. MsgBox k End Sub

Futtassa a fenti kódot az F5 gyorsbillentyűvel vagy manuálisan, majd az eredményt nulla értékkel adja vissza. Mivel a karakterlánc első karaktere nem numerikus karakter, így az eredmény nulla.

8. példa

Próbálja ki ezt a karakterláncot: „24545. 2 ”.

Kód:

Val_Példa8 () Dim k As Variant k = Val ("24545. 2") '' 24545,2 értéket ad eredményül. MsgBox k End Sub

A kód 24545,2 értékként adja vissza az eredményt, mert a VBA VAL függvény a pontot (.) Tekinti tizedes karakternek, és ennek megfelelően adja vissza az eredményt.