Hjem Sosiale medier Slik bruker du OnError-setningen i Excel 2016 VBA - dummies

Slik bruker du OnError-setningen i Excel 2016 VBA - dummies

Innholdsfortegnelse:

Video: Slik bruker du kart og kompass 2024

Video: Slik bruker du kart og kompass 2024
Anonim

Når du trenger å håndtere feil i Excel VBA, kan du bruke OnError-setningen. Det er imidlertid noen ting du må vite først. Du kan bruke On Error-setningen på tre måter.

Syntaks Hva gjør det
På feil GoTo etikett Etter at denne setningen er utført, gjenopptar VBA kjøringen i

-oppstillingen etter den angitte etiketten. Du må inkludere et kolon

etter etiketten slik at VBA gjenkjenner det som en etikett.

På Feil GoTo 0 Etter at denne setningen er utført, gjenopptar VBA sin normale

feilsøkingsadferd. Bruk denne setningen etter å ha brukt ett av de

andre feilmeldingene, eller når du vil fjerne feilhåndtering

i prosedyren.

På Feil Fortsett Neste Etter å ha utført denne setningen, ignorerer VBA bare alle feilene

og fortsetter kjøringen med neste setning.

Resumere etter en feil

I noen tilfeller vil du bare ha rutinen til å avslutte grasiøst når det oppstår en feil. For eksempel kan du vise en melding som beskriver feilen og deretter avslutte prosedyren. (Det viste EnterSquareRoot5-eksemplet bruker denne teknikken.) I andre tilfeller vil du gjenopprette fra feilen, hvis det er mulig.

For å gjenopprette fra en feil må du bruke en CV-setning. Dette fjerner feiltilstanden og lar deg fortsette å kjøre på et sted. Du kan bruke CV-setningen på tre måter.

Syntaks Hva det gjør
Fortsett Utførelsen fortsetter med setningen som forårsaket feilen. Bruk

dette hvis feilhåndteringskoden korrigerer problemet, og

det er greit å fortsette.

Fortsett Neste Utførelsen fortsetter med setningen umiddelbart etter

-klæringen som forårsaket feilen. Dette ignorerer i hovedsak feilen

.

Fortsett etikett Utførelsen gjenopptas på etiketten du angir.

Følgende eksempel bruker en CV-setning etter at det oppstod en feil:

Sub EnterSquareRoot6 () Dim Num Som Variant Dim Msg Som String Dim Ans Som Integer TryAgain: 'Konfigurer feilhåndtering På Feil GoTo BadEntry 'Prompten for en verdi Num = InputBox ("Skriv inn en verdi") Hvis Num = "" Avslutt deretter sub "Sett inn kvadratroten ActiveCell. Verdi = Sqr (Num) Exit Sub BadEntry: Msg = Err. Nummer & ":" & Feil (Err. Nummer) Msg = Msg & vbNewLine & vbNewLine Msg = Msg & "Kontroller at et område er valgt," Msg = Msg & "arket er ikke beskyttet," Msg = Msg & " du angir en nonnegative verdi. "Msg = Msg & vbNewLine & vbNewLine &" Prøv igjen? "Ans = MsgBox (Msg, vbYesNo + vbCritical) Hvis Ans = vbYes Fortsett deretter TryAgain End Sub

Denne prosedyren har en annen etikett: TryAgain.Hvis det oppstår en feil, fortsetter kjøringen på BadEntry-etiketten, og koden viser meldingen under. Hvis brukeren reagerer ved å klikke Ja, slår CV-setningen seg inn, og kjøringen hopper tilbake til TryAgain-etiketten. Hvis brukeren klikker Nei, avslutter prosedyren.

Hvis det oppstår en feil, kan brukeren bestemme om han skal prøve igjen.

Merk at feilmeldingen også inneholder feilnummeret, sammen med den "offisielle" feilbeskrivelsen.

Resume-setningen sletter feiltilstanden før du fortsetter. For å se dette, prøv å erstatte følgende setning for den nest siste setningen i det foregående eksempelet:

Hvis Ans = vbYes Then GoTo TryAgain

Koden fungerer ikke riktig hvis du bruker GoTo i stedet for Fortsett. For å demonstrere, skriv inn et negativt nummer. Du får feilmeldingen. Klikk Ja for å prøve igjen, og skriv deretter inn et annet negativt nummer. Denne andre feilen er ikke fanget fordi den opprinnelige feiltilstanden ikke ble fjernet.

Feilsøking i et nøtteskall

For å hjelpe deg med å holde denne feilbehandlingsvirksomheten rett, er det en rask og skitten sammendrag. En blokk med feilhåndteringskode har følgende egenskaper:

  • Den begynner umiddelbart etter etiketten som er angitt i On Error-setningen.

  • Det bør bare nås med makroen din hvis det oppstår en feil. Dette betyr at du må bruke en uttalelse som Avslutt eller Avslutt funksjon umiddelbart før etiketten.

  • Det kan kreve en CV-setning. Hvis du velger å ikke avbryte prosedyren når det oppstår en feil, må du utføre en CV-setning før du returnerer til hovedkoden.

Vet når du skal ignorere feil

I noen tilfeller er det helt greit å ignorere feil. Det er da On Error Resume Next statement kommer inn i spill.

Følgende eksempel løper gjennom hver celle i det valgte området og konverterer verdien til kvadratroten. Denne prosedyren genererer en feilmelding hvis en celle i valget inneholder et negativt tall eller en tekst:

Sub SelectionSqrt () Dim celle som rekkevidde Hvis TypeName (utvalg) <> "range" Deretter Avslutt Sub For Hver Celle I Seleksjonscelle. Verdi = Sqr (celleverdi) Neste celle End Sub

I dette tilfellet vil du kanskje bare hoppe over en celle som inneholder en verdi som du ikke kan konvertere til en kvadratrot. Du kan opprette alle mulige feilkontrollfunksjoner ved å bruke If-Then-strukturer, men du kan utarbeide en bedre (og enklere) løsning ved ganske enkelt å ignorere feilene som oppstår.

Følgende rutine oppnår dette ved å bruke On Error Resume Next-setningen:

Sub SelectionSqrt () Dim-celle som rekkevidde Hvis TypeName (utvalg) <> "range" Deretter avslutte del på feil Fortsett neste for hver celle i utvalg celle. Verdi = Sqr (celleverdi) Neste celle End Sub

Generelt kan du bruke en On Error Resume Next statement hvis du vurderer at feilene er ufarlige eller uavhengige for oppgaven din.

Slik bruker du OnError-setningen i Excel 2016 VBA - dummies

Redaktørens valg

Vanlige visuelle studio-tastaturgenveier - dummier

Vanlige visuelle studio-tastaturgenveier - dummier

Du kan få tilgang til mange av funksjonene du bruker i Visual Studio til Lag en Silverlight-applikasjon gjennom tastaturgenveier. Her er de vanlige snarveiene som hjelper deg med å utføre oppgaver raskt i Visual Studio. Tastatur snarvei Handling Ctrl + Alt + F1 Åpne Visual Studio Documentation Ctrl + Shift + B Bygg programmet Ctrl + F5 Kjør prosjektet Ctrl + Alt + X Åpne verktøykassen hvis ...

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Som Du komponerer markedsførings-e-postene dine, husk at formatet på e-posten din visuelt kommuniserer hovedideen til innholdet før publikum selv begynner å lese det. Forbrukerne forventer at formatet på e-posten din samsvarer med informasjonen den inneholder, slik at bruk av riktig format bidrar til å bygge publikums tillit. Velg ...

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Din e-postmarkedsføringslisten består sannsynligvis av prospekter og kunder i ulike stadier av kjøpesyklusen med litt forskjellige interesser, så en del av publikum vil aldri være klar til å reagere umiddelbart på hver handling. Selv om alle på din e-postliste er klare til handling, er dine anrop til handling ...

Redaktørens valg

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

En nyttig rapportvisning I et Excel-pivottabell er YTD-totalsvisningen. Noen ganger er det nyttig å fange et løp-total-visning for å analysere bevegelsen av tall på en årlig basis (YTD) basis. Denne figuren illustrerer et pivottabell som viser en løpende total omsetning per måned for hvert år. I denne visningen er du ...

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

I enkelte tilfeller vil du kanskje opprett et pivottabell fra grunnen ved hjelp av Excels eksisterende interne datamodell som kildedata. Her er trinnene for å gjøre det: Velg Sett inn → PivotTable fra båndet. Dialogboksen Create PivotTable åpnes. Velg alternativet Bruk en ekstern datakilde, som vist, og klikk deretter på ...

Hvordan lage en standard snikker i Power Pivot - dummies

Hvordan lage en standard snikker i Power Pivot - dummies

Slicers tilbyr et brukervennlig grensesnitt med som du kan filtrere en Power Pivot pivottabell. Det er på tide å lage din første slicer. Bare følg disse trinnene:

Redaktørens valg

Alarmhendelsen i GameMaker: Studio-dummies

Alarmhendelsen i GameMaker: Studio-dummies

Alarmer er utmerket for når du vil ha tid Handlinger i din spill i GameMaker: Studio. For eksempel, hvis du vil at spilleren bare skal skyte kuler en gang hvert annet sekund, kan du sette en alarm for det. Hvis du vil når nye fiendtlige fly vises, kan du sette en alarm for det ...

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

I GameMaker: Studio, Flytt-fanen er den første kategorien i vinduet Objektegenskaper. Her er en liste over hver av handlingene du kan tilordne objektene. I følgende definisjoner brukes begrepet Instance for å referere til hva handlingen påvirker. Men du konfigurerer handlingen i objektet ...

Andre hendelser i GameMaker: Studio - dummies

Andre hendelser i GameMaker: Studio - dummies

I GameMaker: Studio, Andre hendelser er de som ikke anses verdige av sitt eget sted på menyen Event. Disse andre hendelsene kan være ganske kjempebra. Menyelementene er ganske mye selvforklarende, så det er ikke nødvendig med detaljer her. For fullstendige beskrivelser av hver av disse elementene, kan du alltid trykke F1 i GameMaker og ...