Felhanterare för Excel-makron

Med felhanterare kan du ange vad som händer när ett fel påträffas medan din Excel-makrokod körs. Felhanterare är rader som liknar följande:

Vid fel GoTo MyError

Utan felhanterare kommer alla fel som uppstår i din kod att uppmana Excel att aktivera ett mindre än användbart felmeddelande som vanligtvis inte tydligt visar vad som hände. Men med hjälp av felhanterare kan du välja att ignorera felet eller avsluta koden med ditt eget meddelande till användaren.

Det finns tre typer av On Error-meddelanden:

  • Vid fel GoTo SomeLabel: Koden hoppar till den angivna etiketten.

  • Vid återuppta fel nästa: Felet ignoreras och koden återupptas.

  • Vid fel GoTo 0: VBA återställs till normalt felkontrollbeteende.

Vid fel GoTo SomeLabel

Ibland innebär ett fel i din kod att du måste avsluta proceduren och ge dina användare ett tydligt meddelande. I dessa situationer kan du använda On Error GoTo-satsen för att tala om för Excel att hoppa till en viss kodrad.

Till exempel, i följande lilla kodbit ber du Excel att dividera värdet i cell A1 med värdet i cell A2 och sedan placera svaret i cell A3. Lätt. Vad kan gå fel?

Sub Macro1()
Range("A3").Value = Range("A1").Value / Range("A2").Value
Avsluta Sub

Som det visar sig kan två stora saker gå fel. Om cell A2 innehåller 0 får du ett divideringsfel med 0. Om cell A2 innehåller ett icke-numeriskt värde får du ett typfel.

För att undvika ett otäckt felmeddelande kan du tala om för Excel att vid fel vill du att koden ska hoppa till etiketten MyExit.

I följande kod följs MyExit-etiketten av ett meddelande till användaren som ger vänliga råd istället för ett otäckt felmeddelande. Notera också Exit Sub-raden före MyExit-etiketten, som säkerställer att koden helt enkelt avslutas om inget fel uppstår:

Sub Macro1()
Vid fel GoTo MyExit
Range("A3").Value = Range("A1").Value / Range("A2").Value
Avsluta Sub
MyExit:
MsgBox "Vänligen använd giltiga nummer som inte är noll"
Avsluta Sub

Vid fel Resume Next

Ibland vill du att Excel ska ignorera ett fel och helt enkelt fortsätta köra koden. I dessa situationer kan du använda påståendet Vid Fel Resume Next.

Till exempel är följande kodbit avsedd att ta bort en fil som heter GhostFile.exe från C:Temp-katalogen. När filen har raderats, talar en trevlig meddelanderuta om för användaren att filen är borta:

Sub Macro1()
Döda "C:TempGhostFile.exe"
MsgBox "Filen har tagits bort."
Avsluta Sub

Koden fungerar utmärkt om det verkligen finns en fil att radera. Men om filen som heter GhostFile.exe av någon anledning inte finns i C:Temp-enheten, uppstår ett fel.

I det här fallet bryr du dig inte om filen inte finns där eftersom du ändå skulle ta bort den. Så du kan helt enkelt ignorera felet och gå vidare med koden.

Genom att använda On Error Resume Next-satsen kör koden sin kurs oavsett om den riktade filen finns eller inte:

Sub Macro1()
Vid fel Resume Next
Döda "C:TempGhostFile.exe"
MsgBox "Filen har tagits bort."
Avsluta Sub

Vid fel GoTo 0

När du använder vissa felsatser kan det vara nödvändigt att återställa VBAs felkontrollbeteende. För att förstå vad detta betyder, ta en titt på nästa exempel.

Här vill du först ta bort en fil som heter GhostFile.exe från C:Temp-katalogen. För att undvika fel som kan bero på att den riktade filen inte finns, använder du satsen On Error Resume Next. Efter det försöker du göra lite misstänkt matematik genom att dividera 100/Mike:

Sub Macro1()
Vid fel Resume Next
Döda "C:TempGhostFile.exe"
Range("A3").Värde = 100 / "Mike"
Avsluta Sub

Att köra den här kodbiten borde generera ett fel på grund av den otydliga matematiken, men det gör det inte. Varför? Eftersom den senaste instruktionen du gav till koden var On Error Resume Next. Alla fel som uppstår efter den raden ignoreras i praktiken.

För att lösa detta problem kan du använda On Error GoTo 0-satsen för att återuppta normala felkontrollbeteende:

Sub Macro1()
Vid fel Resume Next
Döda "C:TempGhostFile.exe"
Vid fel GoTo 0
Range("A3").Värde = 100 / "Mike"
Avsluta Sub

Denna kod kommer att ignorera fel tills On Error GoTo 0-satsen. Efter det uttalandet går koden tillbaka till normal felkontroll och utlöser det förväntade felet som härrör från den otydliga matematiken.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]