Hem Sociala medier Hur man använder OnError-förklaringen i Excel 2016 VBA - dummies

Hur man använder OnError-förklaringen i Excel 2016 VBA - dummies

Innehållsförteckning:

Video: HUR ANVÄNDER MAN?! 2024

Video: HUR ANVÄNDER MAN?! 2024
Anonim

När du behöver hantera fel i Excel VBA kan du använda OnError-satsen. Det finns dock några saker du behöver veta först. Du kan använda On Error-satsen på tre sätt.

Syntax Vad det gör
Om Error GoTo label Efter utförandet av detta uttalande återupptar VBA utförandet i

-sagnet efter den angivna etiketten. Du måste inkludera ett kolon

efter etiketten så att VBA känner igen det som en etikett.

På Error GoTo 0 Efter att ha utfört detta uttalande återupptar VBA sitt normala

felkontroll beteende. Använd detta uttalande efter att du använt ett av de

andra felmeddelandena eller när du vill ta bort felhantering

i din procedur.

Om felet fortsätter Nästa Efter att ha utfört detta uttalande ignorerar VBA helt enkelt alla fel

och återupptas utförande med nästa uttalande.

Återuppta efter ett fel

I vissa fall vill du helt enkelt att rutinen slutar graciöst när ett fel uppstår. Du kan till exempel visa ett meddelande som beskriver felet och avsluta proceduren. (Det tidigare EnterSquareRoot5-exemplet använder denna teknik.) I andra fall vill du återhämta sig från felet om möjligt.

För att återhämta sig från ett fel måste du använda ett CV-meddelande. Detta rensar felet och låter dig fortsätta exekvera på någon plats. Du kan använda CV-påståendet på tre sätt.

Syntax Vad det gör
Fortsätt Exekveringen återupptas med det uttalande som orsakade felet. Använd

detta om din felhanteringskod korrigerar problemet och

det är okej att fortsätta.

Fortsätt Nästa Exekveringen återupptas med uttalandet omedelbart efter det uttalande

som orsakade felet. Detta ignorerar väsentligen felet

.

Fortsätt etikett Exekvering återupptas på etiketten du anger.

Följande exempel använder ett CV-meddelande efter ett fel:

Sub EnterSquareRoot6 () Dim Num Som variant Dim Msg Som String Dim Ans Som Integer TryAgain: 'Konfigurera felhantering På Error GoTo BadEntry "Prompten för ett värde Num = InputBox (" Ange ett värde ") Om Num =" "Avsluta sedan" Sätt in kvadratroten ActiveCell. Värde = Sqr (Num) Exit Sub BadEntry: Msg = Err. Nummer & ":" & Fel (Err.nummer) Msg = Msg & vbNewLine & vbNewLine Msg = Msg & "Kontrollera att ett intervall är markerat," Msg = Msg & "arket är inte skyddat," Msg = Msg & " du anger ett nonnegative värde. "Msg = Msg & vbNewLine & vbNewLine &" Försök igen? "Ans = MsgBox (Msg, vbYesNo + vbCritical) Om Ans = vbYes Fortsätt sedan TryAgain End Sub

Den här proceduren har en annan etikett: TryAgain.Om ett fel uppstår fortsätter körningen på BadEntry-etiketten och koden visar meddelandet nedan. Om användaren svarar genom att klicka på Ja, slår genomsökningsuppsättningen in och körningen springer tillbaka till TryAgain-etiketten. Om användaren klickar på Nej avslutas proceduren.

Om ett fel uppstår kan användaren bestämma om det ska försökas igen.

Observera att felmeddelandet också innehåller felnumret tillsammans med den "officiella" felbeskrivningen.

I återupptappningen raderas felet innan du fortsätter. För att se detta, försök att ersätta följande uttalande för det näst sista tillägget i föregående exempel:

Om Ans = vbYes Then GoTo TryAgain

Koden fungerar inte korrekt om du använder GoTo istället för Fortsätt. För att visa, ange ett negativt tal. Du får felmeddelandet. Klicka på Ja för att försöka igen och ange sedan ett annat negativt tal. Det här andra felet är inte fastnat eftersom det ursprungliga felet inte var rensat.

Felhantering i ett nötskal

För att hjälpa dig att hålla hela den här felhanteringsaffären rakt, här är en snabb och smutsig sammanfattning. Ett block med felhanteringskod har följande egenskaper:

  • Den börjar omedelbart efter etiketten som anges i felmeddelandet.

  • Det bör endast nås med ditt makro om ett fel uppstår. Det innebär att du måste använda ett uttalande som Exit Sub eller Exit Function direkt före etiketten.

  • Det kan kräva ett CV-uttalande. Om du väljer att inte avbryta proceduren när ett fel inträffar måste du utföra ett CV-meddelande innan du återgår till huvudkoden.

Att veta när man ska ignorera fel

I vissa fall är det helt okej att ignorera fel. Det är då på felet fortsätt nästa uttalande kommer till spel.

Följande exempel loopar genom varje cell i det valda området och omvandlar värdet till dess kvadratrots. Denna procedur alstrar ett felmeddelande om någon cell i urvalet innehåller ett negativt tal eller en text:

Sub SelectionSqrt () Dimcell som Range If TypeName (Selection) <> "range", sedan Avsluta del för varje cell i markeringscell. Värde = Sqr (cellvärde) Nästa cell Slut Sub

I det här fallet kan du helt enkelt hoppa över en cell som innehåller ett värde som du inte kan konvertera till en kvadratrots. Du kan skapa alla möjliga felkontrollfunktioner genom att använda If-Then-strukturer, men du kan utforma en bättre (och enklare) lösning genom att helt enkelt ignorera de fel som uppstår.

Följande rutin uppnår detta genom att använda On Error Resume Next-satsen:

Sub SelectionSqrt () Dimelcell Som Område Om Typnamn (Urval) <> "Område" Då Avsluta Del Vid Fel Fortsätt Nästa För Varje Cell I Val cell. Värde = Sqr (cellvärde) Nästa cell Slut Sub

I allmänhet kan du använda ett On Error Resume Next-meddelande om du anser att felen är ofarlig eller oavsiktlig för din uppgift.

Hur man använder OnError-förklaringen i Excel 2016 VBA - dummies

Redaktörens val

Namnge dina webbsidor för bättre SEO resultat - dummies

Namnge dina webbsidor för bättre SEO resultat - dummies

Hur du heter Filerna på din webbplats är viktiga. En sökmotor tittar på filnamnet som en indikation på vad som finns i filen, och så måste du använda rätt nyckelord samt tecken som spindlar kan läsa. Till exempel, istället för att namnge din bild av en röd Ford Mustang som ...

Optimera en målsida genom att felsöka folddummorna

Optimera en målsida genom att felsöka folddummorna

En nyckelstrategi för målsides optimering är för att hålla kritiskt innehåll ovanför veckan. I landningssidans optimeringslingo betyder ovanför vikten att viktigt innehåll visas på första skärmen så tittarna ser det omedelbart. Annars måste de gå under veckan genom att rulla ner till nästa skärm. Håll dig över folden ...

Smal ner din sökordslista för bättre sökmotorresultat (SEO) - dummies

Smal ner din sökordslista för bättre sökmotorresultat (SEO) - dummies

För att få de bästa resultaten från sökmotorerna behöver du först utveckla en bra lång lista med potentiella sökord som kan användas på din webbplats. När du har brainstorm och forskning för att komma med den här listan är nästa steg att begränsa det till de nyckelord som är mest relevanta och effektiva för ...

Redaktörens val

5 Gratis SketchUp Online Resources - dummies

5 Gratis SketchUp Online Resources - dummies

Följande är fem gratis källor till SketchUp-hjälp. Alla dessa resurser kräver att du har en Internetanslutning, så se till att din dator är online innan du försöker någon av dessa. SketchUp-utbildningsresurser: SketchUp publicerar förstklassiga material direkt på sin webbplats: Videotutorials: När SketchUp lanserades år 2000 blev det ...

Hur man lägger till detaljer i din SketchUp Terräng med trianglar - dummies

Hur man lägger till detaljer i din SketchUp Terräng med trianglar - dummies

Som Flip Edge-verktyget, Lägg till detaljeringsverktyget i SketchUp är typ av en one-trick pony. Använd den för att lägga till trianglar till områden på din terrängyta som behöver mer detaljer. På så sätt kan du spara geometri (och filstorlek och vänta) genom att ha många ansikten bara inom områdena på din terräng ...

5 Roliga sätt att använda SketchUps push / dragverktyg - dummies

5 Roliga sätt att använda SketchUps push / dragverktyg - dummies

Push / pull är verktyget som de flesta människor tänker på när de tänker på SketchUp. Faktum är att de personer som uppfann denna programvara (tillbaka i det senaste årtusendet) började med tanken för Push / Pull - det är så nära länkat SketchUp och Push / Pull. Om du vill veta lite mer om SketchUps mest framstående verktyg, ...

Redaktörens val

Nätverksadministration: programhantering - dummies

Nätverksadministration: programhantering - dummies

En viktig uppgift för vilken nätverksadministratör som hanterar olika bitar och programstycken som används av dina användare i hela nätverket. De flesta, om inte alla, av dina nätverksanvändare kommer att ha en version av Microsoft Office installerad på sina datorer. Beroende på vilken typ av verksamhet, kan annan programvara vara stor ...

Nätverksadministration: SharePoint Page Creation - dummies

Nätverksadministration: SharePoint Page Creation - dummies

Standardwebbplatsen består av flera standardsidor, inklusive ett dokumentbibliotek , kalender och ett diskussionsforum. Du kan lägga till sidor på din SharePoint-webbplats för att anpassa den efter behov. Till exempel har många SharePoint-webbplatser mer än ett dokumentbibliotek för att lagra olika typer av dokument. Om du vill skapa en ny SharePoint-sida klickar du på ...

Nätverksadministration: Programuppdateringar - dummies

Nätverksadministration: Programuppdateringar - dummies

En av de irritationer som varje nätverksansvarig möter använder programvaruplattor för att hålla operativsystem och annan programvara uppdaterad. En mjukvarupatch är en mindre uppdatering som åtgärdar de små glitches som uppstår från tid till annan, till exempel mindre säkerhets- eller prestationsproblem. Dessa glitches är inte tillräckligt stora ...