VBA på fel

VBA On Error är en enkel metod för att hantera oväntade undantag i Excel Macros.Det är känt att vi inte kan skriva kod utan något fel. Ibland kan det vara felet att skriva stor kod även vid sammanställningen. För att undvika denna typ av situation lägger vi till felmeddelande som istället för att ge oss rätt svar eller felkod kommer det att visa oss meddelandet med felkod. Det ser ut som om vi fick resultatet av vår beräkning men det är felkoden som kommer att tryckas in.

Hur använder jag Excel VBA vid felmeddelande i Excel?

Det finns tre sätt att göra fel i VBA. Låt oss förstå olika sätt med några exempel.

Exempel 1

Den första feltypen är kodkompileringsfel som kommer när en kod är odeklarerade eller omöjliga variabler. För att förstå mer kommer vi att använda ett enkelt matematiskt uttryck för klyftan. Gå till Insert-menyn i VBA och välj Modul som visas nedan.

Öppna nu underkategorin och lägg till valfritt namn. När vi använder On Error så har vi namngivit samma.

 Sub OnError () Slut Sub 

Definiera nu alla två eller tre heltal. Här har vi tagit X och Y som heltal.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal End Sub 

Nu som diskuterats ovan kommer vi att beräkna divisionens matematiska uttryck. För X kommer vi att lägga ett tecken i Numerator och dela det 0. Och Y kommer att vara 20/2 vilket är kompletta siffror.

 Sub OnError () Dim X som heltal, Y som heltal X = Test / 0 Y = 20/2 End Sub 

Kör nu koden med F5-tangenten eller klicka på play-knappen som visas nedan. Vi får körfel 6, som visar felet Text över nummer.

För att överdriva detta fel lägger vi till en rad på felupptagning Nästa innan vi skriver den matematiska koden. Det hoppar felkoden men vi kan inte se resultatet av den andra matematiska koden. Detta döljer bara felmeddelandet om olika kodlinjer som visas nedan. Försök nu att köra koden också.

 Sub OnError () Dim X som heltal, Y som heltal vid fel Återuppta Nästa X = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

För att överdriva detta fel lägger vi till en rad på felupptagning Nästa innan vi skriver den matematiska koden. Det hoppar felkoden men vi kan inte se resultatet av den andra matematiska koden. Detta döljer bara felmeddelandet om olika kodlinjer som visas nedan. Försök nu att köra koden också.

Exempel 2

I det här exemplet kommer vi att överväga den matematiska uppdelningen som ger oändligt resultat men i kodning kommer det # DIV / 0-resultat. För att demonstrera detta kommer vi att överväga ytterligare ett heltal Z tillsammans med X och Y i underkategorin som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal End Sub 

Rama nu alla heltal X, Y och Z med ett matematiskt uttryck för klyftan och för att skriva ut det använder du MsgBox-funktionen i VBA för varje heltals resultat.

Nedan för Integer X har vi delat 10 med 0, 20 med 2 och 30 med 4.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Kör nu koden med F5-tangenten eller manuellt som visas nedan.

Som vi kan se på ovanstående skärmdump Run-time error 11, vilket innebär att felet är relaterat till numret. För att övervinna detta lägg till en rad vid felupptagning Nästa innan matematiska uttryck som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal vid fel Återuppta Nästa X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Slut Sub 

Om vi ​​nu kör koden kommer vi att få noll för första heltal X och för Y och Z kommer vi att få respektive divisionssvar som visas nedan.

Exempel 3

Den andra typen av fel ses när vi anger felaktig datainmatning i kod. För detta kommer vi att överväga 3 heltal X, Y och Z genom att öppna underkategorin i VBA som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal End Sub 

Tänk nu på samma matematiska uppdelning som vi har sett i exemplet ovan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Om vi ​​kör koden får vi samma felmeddelande som körtid 11.

För att åsidosätta detta fel, använd texten On Error GoTo med ordet ““ Resultat för att hoppa över felmeddelandet och få utdata som fungerar bra som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal på fel GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Kör nu koden igen. Vi kommer att få samma resultat som föregående exempel.

Vid fel hjälper GoTo ZResult oss att direkt hoppa av nämnda resultatpunkt heltal som vi gjorde för heltal Z.

Exempel 4

I den tredje typen av fel när vi kör koden och VBA inte kan förstå koden. Detta kan göras med hjälp av kod vid felupptagning Nästa och MsgBox Err.Number . Tänk på samma data som används i exemplen ovan. Vi kommer igen att se samma 3 heltal X, Y och Z som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal End Sub 

Och för att skriva ut resultatutmatningen, tillåta meddelandelådor för alla heltal som utgång.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Om vi ​​nu kör den fullständiga koden får vi ett felmeddelande om det matematiska felet Runtidfel 11.

För att överdriva detta fel kommer vi att använda On Error Resume Next.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal vid fel Återuppta Nästa X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z Slut Sub 

Och kör koden. Detta ger användningsresultat på giltig matematisk linje som visas nedan.

Lägg nu till ZResult-kodraden före Z-heltalets matematiska uttryck och lägg till MsgBox Err.Nummer-kodraden i slutet av koden som visas nedan.

 Sub OnError () Dim X som heltal, Y som heltal, Z som heltal på fel Återuppta Nästa X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Nummer End Sub 

Kör nu koden med F5-tangenten eller genom att trycka på play-knappen som visas nedan.

Som vi kan se i ovanstående skärmdumpar. Första meddelanderuta har 0 som åsidosätter felaktigt matematiskt uttryck. Andra och tredje har ett delningsresultat av Y- och Z-heltal. Och sista meddelanderuta har kört felkod 11, vilket förmodligen är felkoden för X-heltalets delningsuttryck.

Fördelar med VBA på fel

  • Vi kan beräkna valfri matematisk formel även om den är felaktig.
  • För större kodningsstrukturer där det finns chanser eller har fel kan användningen av dessa metoder ge korrekt resultat även bland koden.
  • Detta ger bättre resultat jämfört med resultatet som erhållits från normala Excel-beräkningar.

Saker att komma ihåg

  • Spara alltid filen i makroaktiverad Excel-fil så att vi kan använda den skapade VBA-koden många och flera gånger.
  • Sätt alltid ihop den skriftliga koden innan den implementeras med något excelkrav.
  • Tilldela vid behov den skrivna koden till valfri knapp så att vi snabbt kan klicka på knappen och köra koden.

Du kan ladda ner denna VBA på fel Excel-mall här - VBA på fel Excel-mall

Rekommenderade artiklar

Detta har varit en guide till Excel VBA On Error. Här diskuterade vi hur man använder VBA On Error Statement tillsammans med några praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar–

  1. Hur använder man VBA TRIM-funktion?
  2. Nummerformat i VBA
  3. Guide till Excel VBA Do While Loop
  4. Hur använder man VBA Find-funktion?

Kategori: