Hur du använder VBA-funktionen IsNumeric (9 exempel)

  • Dela Detta
Hugh West

Om du letar efter några av de enklaste sätten att använda VBA IsNumeric funktion, då är du på rätt plats. Vi använder vanligtvis denna funktion i VBA för att testa om ett uttryck är ett tal eller inte och beroende på uttrycket kommer det att ge TRUE om uttrycket är ett tal, annars FALSK .

Ladda ner arbetsboken

VBA IsNumeric Function.xlsm

VBA IsNumeric-funktion: Syntax & Argument

⦿ Syntax

IsNumeric (uttryck)

⦿ Argument

Argument Obligatoriskt/valfritt Förklaring
Uttryck Krävs Det är en variant som ska kontrolleras om det är ett nummer eller inte.

⦿ Returvärde

Ingång Returvärde
Antal TRUE
Inte ett nummer; sträng FALSK

⦿ Version

ISNUMERIC-funktion infördes i Excel 2000 och är tillgänglig för alla versioner därefter.

9 exempel på användning av VBA-funktionen IsNumeric

I den här artikeln ska vi försöka visa hur man använder VBA IsNumeric med några slumpmässiga exempel tillsammans med några exempel, inklusive följande tabell.

Vi har använt oss av Microsoft Excel 365 versionen här, men du kan använda andra versioner när det passar dig.

1. Kontrollera VBA IsNumeric med några slumpmässiga värden

Här testar vi några slumpmässiga strängar med VBA ISNUMERIC , om värdena är numeriska eller inte.

Step-01 :

➤ Gå till Utvecklare Fliken>> Visual Basic Alternativ.

Därefter är det Redigerare för Visual Basic kommer att öppnas.

➤ Gå till Infoga Fliken>> Modul Alternativ.

Efter detta kommer en Modul kommer att skapas.

Step-02 :

➤ Skriv följande kod

 Sub checkvalue1() Dim x As Variant x = InputBox("Ange valfritt värde") MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra det inmatade värdet. ISNUMERIC kommer att återge TRUE om ingångsvärdet är numeriskt, annars returneras FALSK Vi hittar resultatet i en meddelanderuta ( MsgBox ).

➤ Press F5 .

Då får du följande inmatningsruta och om du skriver värdet 100 och tryck på OK ,

får du en meddelanderuta med följande text "Sant" .

För att skriva strängen Katt och trycker på OK i inmatningsrutan,

Vi får en meddelanderuta med följande text "Falsk" .

Läs mer: Hur du använder VBA-funktionen Randomisera i Excel (5 exempel)

2. Användning av VBA IsNumeric med IF-THEN-ELSE Statement

I det här avsnittet kommer vi att använda ISNUMERIC-funktion med den IF-THEN-ELSE uttalande i en VBA kod för att definiera de numeriska och icke-numeriska värdena.

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue2() Dim x As Variant x = InputBox("Ange valfritt värde") If IsNumeric(x) = True Then MsgBox "Det angivna värdet är numeriskt" Else MsgBox "Det angivna värdet är inte numeriskt" End If End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra det inmatade värdet. När ISNUMERIC kommer att återge TRUE , IF kommer att ge ett meddelande med följande text "Det givna värdet är numeriskt" och om ISNUMERIC returnerar FALSK , då IF returnerar ett meddelande som förklarar "Det givna värdet är inte numeriskt" .

➤ Press F5 .

Då får du följande inmatningsruta och om du skriver värdet 200 och tryck på OK ,

får du en meddelanderuta med följande text "Det givna värdet är numeriskt" .

För att skriva strängen Katt och trycker på OK i inmatningsrutan,

Vi får en meddelanderuta med följande text "Det givna värdet är inte numeriskt" .

Läs mer: VBA If - Then - Else Statement i Excel (4 exempel)

3. Skapa ett motsatt resultat med funktionen IsNumeric

Här kommer vi att skapa en VBA kod som kommer att ge oss det omvända resultatet av ISNUMERIC-funktion , vilket innebär att vi för numeriska värden får FALSK , och för icke-numeriska värden kommer den att återge TRUE .

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue3() Dim x As Variant x = InputBox("Ange valfritt värde") If IsNumeric(x) = True Then MsgBox ("FALSE") Else MsgBox ("TRUE") End If End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra det inmatade värdet. När ISNUMERIC kommer att återge TRUE , IF kommer att ge ett meddelande med följande text "FALSK" och om ISNUMERIC returnerar FALSK , då IF returnerar ett meddelande som förklarar "TRUE" .

➤ Press F5 .

Då får du följande inmatningsruta och om du skriver värdet 25 och tryck på OK ,

får du en meddelanderuta med följande text "FALSK" .

För att skriva strängen Alaska och trycker på OK i inmatningsrutan,

Vi får en meddelanderuta med följande text "TRUE" .

Relaterat innehåll: VBA-formatfunktion i Excel (8 användningsområden med exempel)

4. Kontrollera om Blanks är numeriskt eller inte

Du kan enkelt kontrollera detta med en VBA kod om blanksteg är numeriska eller inte.

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue4() Dim x As Variant x = " " " MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra Blank . Sedan ISNUMERIC kommer att återge TRUE om den Blank är numerisk, annars returneras FALSK .

➤ Press F5 .

Därefter får du en meddelanderuta med följande text "Falsk" vilket innebär att blanksteg är inte numeriska. .

Läs mer: Excel-formel för att generera slumpmässiga nummer (5 exempel)

5. Kontrollera om datum är numeriska eller inte

I det här avsnittet använder vi ett slumpmässigt datum och kontrollerar om datumet är numeriskt eller inte.

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue5() Dim x As Variant x = "02/02/2022 " MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den lagrar ett datum. ISNUMERIC kommer att återge TRUE om datumet är numeriskt, annars återges FALSK .

➤ Press F5 .

Därefter får du en meddelanderuta med följande text "Falsk" vilket innebär att datum är inte numeriska .

Vi kan också försöka med DATESERIAL-funktionen för att skapa datum och kontrollera om det är numeriskt eller inte.

➤ Ange följande kod

 Sub checkvalue5a() Dim x As Variant x = DateSerial(2022, 2, 2) MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra ett datum som skapats med hjälp av DATESERIAL-funktionen . Sedan ISNUMERIC kommer att återge TRUE om datumet är numeriskt, annars återges FALSK .

➤ Press F5 .

I gengäld får du en meddelanderuta med följande text "Falsk" även denna gång.

Läs mer: VBA Date-funktion (12 användningsområden för makron med exempel)

Liknande läsning:

  • Hur man använder MsgBox-funktionen i Excel VBA (en fullständig vägledning)
  • Använd VBA-funktionen Environ (4 exempel)
  • Hur man använder VBA och funktion i Excel (4 exempel)
  • Använd VBA-fallbeskrivning (13 exempel)
  • Hur man använder logfunktionen i Excel VBA (5 lämpliga exempel)

6. Kontrollera om tiden är numerisk eller inte

I det här avsnittet kommer vi att kontrollera om tiderna är numeriska eller inte genom att använda ISNUMERIC-funktion .

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue6() Dim x As Variant x = "09:30:00 AM" MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra en tid. ISNUMERIC kommer att återge TRUE om tiden är numerisk, annars återges FALSK .

➤ Press F5 .

Därefter får du en meddelanderuta med följande text "Falsk" vilket innebär att tiderna är inte numeriska .

Du kan också försöka med TIMESERIAL-funktionen för att skapa datum och kontrollera om det är numeriskt eller inte.

➤ Ange följande kod

 Sub checkvalue6a() Dim x As Variant x = TimeSerial(9, 30, 0) MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra en tid som skapats med hjälp av TIMESERIAL-funktionen . Sedan ISNUMERIC kommer att återge TRUE om tiden är numerisk, annars återges FALSK .

➤ Press F5 .

Därefter får du en meddelanderuta med följande text "Falsk" även denna gång.

Återigen kan vi prova att referera till ett tidsvärde i en cell i ett ark.

➤ Ange följande kod

 Sub checkvalue6b() Dim x As Variant x = range("B2").value MsgBox IsNumeric(x) End Sub 

Här har vi deklarerat x som en Variant och den kommer att lagra en tid som ligger i B2 cell. ISNUMERIC kommer att återge TRUE om tiden är numerisk, annars återges FALSK .

➤ Press F5 .

Slutligen får du en meddelanderuta med följande text "Sant" den här gången.

Läs mer: Hur man använder VBA TimeSerial i Excel (3 exempel)

7. Använda VBA IsNumeric för ett intervall av värden

Här kontrollerar vi om värdena för Märken/graderingar kolumnen är numeriska eller icke-numeriska och har resultaten i Kontrollera kolumn.

Steg :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner följande kod

 Sub checkvalue7() Dim cell As Range For Each cell In Range("D5:D11") cell.Offset(0, 1) = IsNumeric(cell) Next cell End Sub 

Vi har deklarerat cellen som Range och använt en FÖR loop för cellerna i intervallet "D5:D11" och för dessa celler är det ISNUMERIC kommer att återge TRUE om värdet är numeriskt, annars återges FALSK och cell.Offset(0, 1) returnerar utdatavärdena i en kolumn senare till inmatningskolumnen.

➤ Press F5 .

Därefter har vi följande TRUE för de numeriska värdena eller Marker och FALSK för icke-numeriska värden eller Årskurserna .

Läs mer: Hur du använder VBA Val-funktionen i Excel (7 exempel)

8. Skapa en funktion för att testa ett intervall av värden

I det här avsnittet kommer vi att skapa en funktion med VBA ISNUMERIC och kontrollera om värdena för Märken/graderingar kolumnen är numeriska eller icke-numeriska.

Step-01 :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner och spara följande kod

 Funktion IsNumericTest(value As Variant) As Boolean If IsNumeric(value) Then IsNumericTest = True Else IsNumericTest = False End If End Function 

Denna kod skapar en funktion som heter IsNumericTest .

Step-02 :

➤ Återgå till huvudbladet och skriv följande formel i cellen E5

=IsNumericTest(D5)

D5 är den Märken/graderingar av en student och IsNumericTest kommer att återge SANT/FALSKT beroende på värdet.

➤ Press ENTER och dra ner den Handtag för fyllning verktyg.

Slutligen har vi TRUE för de numeriska värdena eller Marker och FALSK för icke-numeriska värden eller Årskurserna .

Relaterat innehåll: Hur man använder VBA DIR-funktionen i Excel (7 exempel)

9. Räkna icke-numeriska värden med VBA-funktionen IsNumeric

Vi vill räkna de icke-numeriska värdena eller betygen i Märken/graderingar kolumnen och för att göra det här använder vi VBA ISNUMERIC och har det totala antalet icke-numeriska värden som vi har i Räkna kolumn.

Step-01 :

➤ Följ Step-01 i avsnittet 1 .

➤ Skriv ner och spara följande kod

 Funktion countnonnumeric(value As range) As Long Dim cell As range Dim count As Long For Each cell In value.Cells If Not IsNumeric(cell.value) Then count = count + 1 End If Next countnonnumeric = count End Function 

Denna kod skapar en funktion som heter countnonnumeric .

När cellvärdet inte är ett numeriskt värde är räkna kommer att ökas med 1 .

Step-02 :

➤ Återgå till huvudbladet och skriv följande formel

=räkningnonnumerisk(D5:D11)

D5:D11 är räckvidden för Märken/graderingar av studenterna och countnonnumeric ger det totala antalet icke-numeriska betyg.

➤ Press ENTER

Slutligen får du värdet 3 vilket innebär att du har 3 Betyg i den Märken/graderingar kolumn.

Läs mer: Hur man returnerar ett värde i en VBA-funktion (både array- och icke-arrayvärden)

IsNumeric vs ISNUMBER

  • ISNUMERIC kontrollerar om ett värde kan omvandlas till ett tal och ISNUMMER kontrollerar om ett värde är lagrat som ett tal.
  • Det finns vissa skillnader mellan VBA ISNUMERIC-funktionen och Excel ISNUMBER-funktionen och vi har försökt visa skillnaderna nedan genom att använda vår tidigare skapade IsNumericTest-funktionen och den inbyggda Excel ISNUMBER-funktionen .

Övningssektionen

För att du ska kunna öva på egen hand har vi tillhandahållit en Praktik som nedan i ett ark som heter Praktik . Gör det själv.

Slutsats

I den här artikeln har vi försökt täcka några av de sätt på vilka du kan använda VBA ISNUMERIC Om du har några förslag eller frågor får du gärna dela med dig av dem i kommentarsfältet.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.