VBA VAL | Jak používat funkci VBA VAL? (s příklady)

Funkce Excel VBA Val

Funkce Val ve vba spadá pod funkce řetězce, je to také vestavěná funkce ve VBA, která se používá k získání číselných hodnot z datové proměnné, předpokládejme, že pokud má proměnná hodnotu jako A10, funkce val nám dá 10 jako výstup, to vezme řetězec jako argument a vrátí čísla přítomná v řetězci.

VAL znamená v terminologii VBA hodnota VALUE. Tato funkce převádí řetězec obsahující čísla na skutečné číslo. Například pokud zadáte textový řetězec „1234 Global“, vrátí pouze číselnou část, tj. 1234.

Často, když stahujeme nebo získáváme data z webových čísel, jsou obvykle uloženy jako textové hodnoty v tabulce. Převod textu na čísla je nejtěžší úkol, pokud si nejste vědomi správné funkce v aplikaci Excel. Jako běžná funkce listu máme funkci nazvanou HODNOTA, která převede celý řetězec, který představuje čísla, na přesná čísla pomocí jednoduché funkce v listu. V tomto článku si ukážeme, jak toho lze ve VBA dosáhnout pomocí funkce VAL.

Syntax

Má pouze jeden argument, tj. String.

  • Řetězec: Je to jednoduše řetězcová hodnota, z níž se snažíme dostat číselnou část.

Funkce VAL tedy převede zadaný řetězec na číselnou hodnotu.

Poznámka: Funkce VAL vždy ignoruje mezery a pokračuje ve čtení čísel za mezerou nebo znaky.

Pokud je například zadaný řetězec „145 45 666 3“, bude ignorovat mezery a vrátí výsledek jako „145456663“.

Příklady funkce VAL v aplikaci Excel VBA

Tuto šablonu Excel funkce VBA Val si můžete stáhnout zde - Šablona Excel funkce VBA Val

Příklad č. 1

Zkusme první příklad s jednoduchým číslem, tj. „14 56 47“

Níže uvedený kód je pro vás.

Kód:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Převede výše uvedené na 145647 MsgBox k End Sub 

Když spustíte kód VBA pomocí klávesy F5 nebo ručně, vrátí výsledek jako „145647“ ignorováním všech znaků mezery, jak je znázorněno na následujícím obrázku.

Příklad č. 2

V tomto příkladu uvidíme, jaký bude výsledek řetězce „+456“.

Kód:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Převede výše uvedené na 456 MsgBox k End Sub 

Tento kód můžete spustit ručně nebo pomocí klávesy F5 a vrátit hodnotu 456 ignorováním +456.

Příklad č. 3

Nyní zkusme stejné číslo se záporným znaménkem.

Kód:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Převede výše uvedené na -456 MsgBox k End Sub 

Tento kód vrátí hodnotu jako -456 pouze proto, že by se mělo zobrazit číslo se znaménkem operátora.

Příklad č. 4

Nyní vyzkoušejte tento řetězec „100 Kg“.

Kód:

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

Pokud spustíte tento kód ručně nebo pomocí klávesy F5, pak tento výše uvedený kód ignoruje „KG“ a vrací pouze „100“ v okně se zprávou VBA.

Příklad č. 5

Nyní zkuste řetězec data, tj. „14-05-2018“.

Kód:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Vrátí 14 jako výsledek. MsgBox k End Sub

Výše uvedený kód vrací 14 jako výsledek, protože funkce VAL může načítat pouze číselnou hodnotu, dokud nenajde jiný než číselný znak.

Příklad č. 6

Nyní zkuste řetězec „7459Good456“.

Kód:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") '' Vrátí 7459 jako výsledek. MsgBox k End Sub

Tím se extrahují čísla, dokud nenajde nečíselný znak, tj. Výsledek je 7459. Přestože za nečíselnou hodnotou „Dobré“ jsou číselné hodnoty, potom čísla zcela ignoruje.

Příklad č. 7

Nyní zkuste hodnotu řetězce „H 12456“.

Kód:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Vrátí 0 jako výsledek. MsgBox k End Sub

Spusťte výše uvedený kód pomocí klávesové zkratky F5 nebo ručně, pak vrátí výsledek jako nulu. Protože první znak řetězce, který jsme zadali, je nečíselný znak, je výsledek nulový.

Příklad č. 8

Nyní zkuste tento řetězec „24545. 2 ”.

Kód:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Vrátí 24545.2 jako výsledek. MsgBox k End Sub

Kód vrátí výsledek jako 24545.2, protože funkce VBA VAL považuje znak tečku (.) Za desetinný znak a odpovídajícím způsobem vrátí výsledek.


$config[zx-auto] not found$config[zx-overlay] not found