Tento tutoriál vás naučí používat IsNumeric a IsNumber funkce ve VBA ke kontrole, zda jsou hodnoty čísly.
IsNumeric je integrovaná funkce VBA, zatímco IsNumber je funkce aplikace Excel, kterou lze volat z kódu VBA.
Rozdíl mezi IsNumber a IsNumeric ve VBA
IsNumber kontroluje, zda je hodnota uložena jako číslo. Zatímco IsNumeric kontroluje, zda lze hodnotu převést na číslo.
Pokud například jako parametr předáte prázdnou buňku, IsNumber vrátí FALSE, zatímco IsNumeric vrátí TRUE. Také pokud předáte buňku obsahující číslo uložené jako text, IsNumber vrátí FALSE a IsNumeric TRUE.
Je třeba věnovat pozornost těmto omezením obou funkcí a rozhodnout, ve kterých případech je lepší použít IsNumeric a kdy IsNumber.
Použití IsNumeric ve VBA
IsNumeric je funkce VBA, která kontroluje, zda je hodnota číselná a v důsledku toho vrací logickou hodnotu TRUE nebo FALSE.
Funkce může mít proměnnou nebo hodnotu buňky.
Zde je příklad převzetí hodnoty buňky:
12345 | Je -li IsNumeric (Sheet1.Range ("A1"). Hodnota) = True ThenMsgBox "Hodnota v A1 je číselná"JinýMsgBox "Hodnota v A1 není číselná"Konec If |
V tomto příkladu zkontrolujeme, zda je hodnota z buňky A1 číselná pomocí IsNumeric. Tato funkce vrací příslušnou zprávu v závislosti na výsledku funkce.
Tento další příklad provede stejnou operaci, kromě proměnné místo hodnoty buňky:
123456789 | Dim n jako variantan = List1.Range ("A1"). HodnotaPokud je IsNumeric (n) = True ThenMsgBox "Hodnota v A1 je číselná"JinýMsgBox "Hodnota v A1 není číselná"Konec If |
Použití IsNumber ve VBA
IsNumber je funkce Excelu, kterou lze použít ve VBA. Má téměř podobný výstup jako IsNumeric. Podívejme se na příklad funkce IsNumber:
123456789 | Pokud Application.WorksheetFunction.IsNumber (Sheet1.Range ("A1"). Value) = True ThenMsgBox "Hodnota v A1 je číselná"JinýMsgBox "Hodnota v A1 není číselná"Konec If |
Jak vidíte z kódu, rozdíl je v syntaxi při volání funkce. Protože IsNumber je funkce Excelu, musíme dát Application.WorksheetFunction před voláním funkce.