VBA VAL | Ako používať funkciu VBA VAL? (s príkladmi)

Funkcia Excel VBA Val

Funkcia Val vo vba spadá pod reťazcové funkcie, je to tiež zabudovaná funkcia vo VBA, ktorá sa používa na získanie číselných hodnôt z dátovej premennej. Predpokladajme, že ak má premenná hodnotu ako A10, funkcia val nám dá 10 ako výstup, vezme reťazec ako argument a vráti čísla prítomné v reťazci.

VAL znamená v terminológii VBA hodnota VALUE. Táto funkcia prevádza reťazec obsahujúci čísla na skutočné číslo. Napríklad ak zadáte textový reťazec „1234 Global“, vráti sa iba číselná časť, tj. 1234.

Keď sťahujeme alebo získavame údaje z webových čísel, časy sa často ukladajú ako textové hodnoty do tabuľky. Prevod textu na čísla je najťažšou úlohou, ak neviete o správnej funkcii v programe Excel. Ako bežná funkcia pracovného hárka máme funkciu s názvom HODNOTA, ktorá prevedie celý reťazec, ktorý predstavuje čísla, na presné čísla pomocou jednoduchej funkcie v hárku. V tomto článku si ukážeme, ako je to možné dosiahnuť vo VBA pomocou funkcie VAL.

Syntax

Má iba jeden argument, tj.

  • Reťazec: Je to jednoducho reťazcová hodnota, z ktorej sa snažíme dostať numerickú časť.

Funkcia VAL teda prevádza dodaný reťazec na číselnú hodnotu.

Poznámka: Funkcia VAL vždy ignoruje medzery a pokračuje v načítaní čísel za medzerou alebo znakmi.

Napríklad ak je zadaný reťazec „145 45 666 3“, bude ignorovať medzery a vráti výsledok ako „145456663“.

Príklady funkcie VAL v programe Excel VBA

Túto šablónu VBA Val Function Excel si môžete stiahnuť tu - Šablónu VBA Val Function Excel

Príklad č

Skúsme prvý príklad s jednoduchým číslom, tj „14 56 47“

Nižšie uvedený kód je pre vás.

Kód:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Konvertovať vyššie uvedené na 145647 MsgBox k End Sub 

Keď spustíte kód VBA pomocou klávesu F5 alebo manuálne, vráti výsledok ako „145647“ ignorovaním všetkých znakov medzery, ako je znázornené na nasledujúcom obrázku.

Príklad č

V tomto príklade uvidíme, aký bude výsledok reťazca „+456“.

Kód:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Konvertuje vyššie uvedené na 456 MsgBox k End Sub 

Tento kód môžete spustiť manuálne alebo pomocou klávesu F5 a vrátiť hodnotu 456 ignorovaním +456.

Príklad č

Teraz skúsme to isté číslo so záporným znamienkom.

Kód:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Konvertuje vyššie uvedené na -456 MsgBox k End Sub 

Tento kód vráti hodnotu ako -456 iba preto, že by sa malo zobraziť číslo so znamienkom operátora.

Príklad č

Teraz vyskúšajte tento reťazec „100 Kg“.

Kód:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Ignoruje KG a vráti iba 100 MsgBox k End Sub 

Ak spustíte tento kód manuálne alebo pomocou klávesu F5, potom tento vyššie uvedený kód ignoruje „KG“ a vráti iba „100“ v poli so správou VBA.

Príklad č

Teraz vyskúšajte reťazec dátumu, tj „14-05-2018“.

Kód:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Vráti hodnotu 14 ako výsledok. MsgBox k End Sub

Vyššie uvedený kód vráti 14 ako výsledok, pretože funkcia VAL môže načítať iba číselnú hodnotu, kým nenájde iný ako číselný znak.

Príklad č

Teraz vyskúšajte reťazec „7459Good456“.

Kód:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") '' Vráti 7459 ako výsledok. MsgBox k End Sub

Toto bude extrahovať čísla, kým nenájde nečíselný znak, tj výsledok je 7459. Aj keď za nečíselnou hodnotou „Dobré“ existujú číselné hodnoty, po nej čísla úplne ignoruje.

Príklad č. 7

Teraz vyskúšajte hodnotu reťazca „H 12456“.

Kód:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Vráti 0 ako výsledok. MsgBox k End Sub

Spustite vyššie uvedený kód pomocou klávesovej skratky F5 alebo manuálne, potom vráti výsledok ako nulu. Pretože úplne prvý znak reťazca, ktorý sme zadali, je nečíselný znak, výsledok je nulový.

Príklad # 8

Teraz vyskúšajte tento reťazec „24545. 2 “.

Kód:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Vráti hodnotu 24545,2 ako výsledok. MsgBox k End Sub

Kód vráti výsledok ako 24545.2, pretože funkcia VBA VAL považuje znak dot (.) Za desatinný znak a vráti výsledok podľa toho.