Feilsøkingsteknikker for Excel 2016 VBA

Du kan få problemer med VBA-koden din, men hvordan finner du problemet? Noen ganger kan det hende at VBA-koden din trenger litt feilsøking. Fortsett å lese for å oppdage de fire vanligste metodene for feilsøking av Excel VBA-kode:

  • Undersøker koden

  • Sette inn MsgBox-funksjoner på forskjellige steder i koden din

  • Setter inn Debug.Print-setninger

  • Bruke de innebygde feilsøkingsverktøyene i Excel

Undersøker koden din

Den kanskje enkleste feilsøkingsteknikken er ganske enkelt å ta en nærmere titt på koden din for å se om du kan finne problemet. Denne metoden krever selvfølgelig kunnskap og erfaring. Med andre ord, du må vite hva du gjør. Hvis du er heldig, hopper feilen rett ut, og du slår deg i pannen og sier: "Åh!" Når pannesmertene avtar, kan du fikse problemet.

Legg merke til bruken av ordene "Hvis du er heldig." Det er fordi du ofte oppdager feil når du har jobbet med programmet i åtte timer i strekk, klokken er 02.00 og du kjører på koffein og viljestyrke. Til tider som det er du heldig hvis du til og med kan se koden din, enn si finne feilene. Vær derfor ikke overrasket om det å undersøke koden din ikke er nok til å få deg til å finne og fjerne alle feilene den inneholder.

Bruke MsgBox-funksjonen

Et vanlig problem i mange programmer innebærer at en eller flere variabler ikke får de verdiene du forventer. I slike tilfeller er overvåking av variabelen(e) mens koden kjører en nyttig feilsøkingsteknikk. En måte å gjøre dette på er ved å sette inn midlertidige MsgBox-funksjoner i rutinen din. For eksempel, hvis du har en variabel kalt CellCount, kan du sette inn følgende setning:

MsgBox CellCount

Når du utfører rutinen, viser MsgBox-funksjonen CellCounts verdi.

Det er ofte nyttig å vise verdiene til to eller flere variabler i meldingsboksen. Følgende setning viser gjeldende verdi av to variabler: LoopIndex (1) og CellCount (72), atskilt med et mellomrom.

MsgBox LoopIndex & " " & CellCount

Legg merke til at de to variablene er kombinert med sammenkoblingsoperatoren (&) og sett inn et mellomrom mellom dem. Ellers setter meldingsboksen de to verdiene sammen, slik at de ser ut som én enkelt verdi. Du kan også bruke den innebygde konstanten, vbNewLine, i stedet for mellomromstegnet. vbNewLine setter inn et linjeskift, som viser teksten på en ny linje. Følgende setning viser tre variabler, hver på en egen linje:

Feilsøkingsteknikker for Excel 2016 VBA

Bruke en meldingsboks for å vise verdien av tre variabler.

MsgBox LoopIndex & vbNewLine & CellCount & vbNewLine & MyVal

Denne teknikken er ikke begrenset til overvåking av variabler. Du kan bruke en meldingsboks til å vise all slags nyttig informasjon mens koden kjører. For eksempel, hvis koden din går gjennom en serie ark, viser følgende setning navnet og typen på det aktive arket:

MsgBox ActiveSheet.Name & “ “ & TypeName(ActiveSheet)

Hvis meldingsboksen viser noe uventet, trykk Ctrl+Break, og du ser en dialogboks som forteller deg at kjøringen av kode har blitt avbrutt, har du fire valg:

  • Klikk på Fortsett-knappen. Koden fortsetter å kjøre.

  • Klikk på Avslutt-knappen. Utførelse stopper.

  • Klikk på Feilsøk-knappen. VBE går inn i feilsøkingsmodus.

  • Klikk på Hjelp-knappen. En hjelpeskjerm forteller deg at du trykket Ctrl+Break. Det er med andre ord ikke særlig nyttig.

    Feilsøkingsteknikker for Excel 2016 VBA

    Ved å trykke Ctrl+Break stopper kjøringen av koden din og gir deg noen valg.

Hvis tastaturet ditt ikke har en brytetast, kan du prøve å trykke Ctrl+ScrollLock.

Bruk gjerne MsgBox-funksjonene ofte når du feilsøker koden din. Bare sørg for at du fjerner dem etter at du har identifisert og rettet problemet.

Setter inn Debug.Print-setninger

Som et alternativ til å bruke MsgBox-funksjoner i koden din, kan du sette inn en eller flere midlertidige Debug.Print-setninger. Bruk disse setningene til å skrive ut verdien av én eller flere variabler i vinduet Umiddelbart. Her er et eksempel som viser verdiene til tre variabler:

Debug.Print LoopIndex, CellCount, MyVal

Legg merke til at variablene er atskilt med komma. Du kan vise så mange variabler du vil med en enkelt Debug.Print-setning.

Debug.Print sender utdata til Immediate-vinduet selv om det vinduet er skjult. Hvis VBEs Umiddelbare vindu ikke er synlig, trykk Ctrl+G (eller velg Vis → Umiddelbart vindu). Her er noen utdata i Umiddelbar-vinduet.

Feilsøkingsteknikker for Excel 2016 VBA

En Debug.Print-setning sender utdata til Immediate-vinduet.

I motsetning til MsgBox, stopper ikke Debug.Print-setninger koden din. Så du må holde øye med Umiddelbar-vinduet for å se hva som skjer.

Etter at du har feilsøkt koden, sørg for å fjerne alle Debug.Print-setningene. Selv store selskaper som Microsoft glemmer av og til å fjerne sine Debug.Print-uttalelser. I flere tidligere versjoner av Excel, hver gang Analysis ToolPak-tillegget ble åpnet, ville du se flere merkelige meldinger i Umiddelbar-vinduet. Det problemet ble endelig løst i Excel 2007.

Bruker VBA debugger

Excel-designerne er godt kjent med konseptet med feil. Følgelig inkluderer Excel et sett med feilsøkingsverktøy som kan hjelpe deg med å rette opp problemer i VBA-koden.


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]