Použití Isnumeric a Isnumber ve VBA

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.

wave wave wave wave wave