Innholdsfortegnelse:
- Undersøk koden din
- Bruke MsgBox-funksjonen
- Sette inn feilsøking. Utskriftserklæringer
- Bruke VBA-feilsøkeren
Det kan hende du får problemer med VBA-koden din, men hvordan finner du problemet? Noen ganger kan VBA-koden trenge litt feilsøking. Fortsett å lese for å finne de fire vanligste metodene for feilsøking av Excel VBA-kode:
-
Undersøk koden
-
Sette inn MsgBox-funksjoner på forskjellige steder i koden din
-
Sette inn feil. Utskriftserklæringer
-
Bruke Excel-innebygde feilsøkingsverktøy
Undersøk koden din
Kanskje den mest enkle debugging teknikken bare tar en nærmere titt på koden din for å se om du kan finne problemet. Denne metoden krever selvsagt kunnskap og erfaring. Med andre ord må du vite hva du gjør. Hvis du er heldig, hopper feilen helt ut, og du slår på pannen og sier, "D'oh! "Når pannens smerte reduseres, kan du løse problemet.
Legg merke til bruken av ordene, "Hvis du er heldig. "Det er fordi du ofte oppdager feil når du har jobbet på programmet i åtte timer rett, det er 2 a. m., og du kjører på koffein og viljestyrke. Til tider som det, er du heldig hvis du kan se koden din, enda mindre finne feilene. Dermed ikke bli overrasket hvis bare å undersøke koden din ikke er nok til at du finner og utvider alle feilene den inneholder.
Bruke MsgBox-funksjonen
Et vanlig problem i mange programmer innebærer en eller flere variabler som ikke tar de verdiene du forventer. I slike tilfeller overvåker variabelen (r) mens koden kjører, en nyttig feilsøkingsteknikk. En måte å gjøre dette på er å sette midlertidige MsgBox-funksjoner inn i rutinen. Hvis du for eksempel har en variabel som heter 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 for to eller flere variabler i meldingsboksen. Følgende setning viser nåverdien av to variabler: LoopIndex (1) og CellCount (72), skilt av et mellomrom.
MsgBox LoopIndex & "" og CellCount
Merk at de to variablene er kombinert med sammenkoblingsoperatøren (&) og sett inn et mellomrom mellom dem. Ellers strammer meldingsboksen de to verdiene sammen, slik at de ser ut som en enkelt verdi. Du kan også bruke den innebygde konstanten, vbNewLine, i stedet for mellomromstegnet. vbNewLine legger inn en linjeinnmatingspause, som viser teksten på en ny linje. Følgende setning viser tre variabler, hver på en egen linje:
MsgBox LoopIndex & vbNewLine & CellCount & vbNewLine & MyVal
Denne teknikken er ikke begrenset til overvåkning av variabler. Du kan bruke en meldingskasse for å vise all slags nyttig informasjon mens koden din kjører. Hvis for eksempel 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 Kodekjøring er avbrutt, du har fire valg:
-
Klikk på Fortsett-knappen. Koden fortsetter å utføre.
-
Klikk på Avslutt-knappen. Utførelsen stopper.
-
Klikk på Debug-knappen. VBE går inn i feilsøkingsmodus.
-
Klikk på Hjelp-knappen. En hjelpeskjerm forteller deg at du trykket på Ctrl + Break. Det er med andre ord ikke veldig nyttig.
Ved å trykke på Ctrl + Break stopper kjøringen av koden din og gir deg noen valg.
Hvis tastaturet ikke har en pause-tast, kan du prøve å trykke Ctrl + ScrollLock.
Bruk gjerne MsgBox-funksjoner ofte når du feilsøker koden din. Bare vær sikker på at du fjerner dem etter at du har identifisert og rettet opp problemet.
Sette inn feilsøking. Utskriftserklæringer
Som et alternativ til å bruke MsgBox-funksjoner i koden din, kan du sette inn en eller flere midlertidige Debug. Skriv ut uttalelser. Bruk disse setningene til å skrive ut verdien av en eller flere variabler i vinduet Immediate. Her er et eksempel som viser verdiene av tre variabler:
Feilsøking. Skriv ut LoopIndex, CellCount, MyVal
Merk at variablene er skilt med kommaer. Du kan vise så mange variabler som du vil med en enkelt Feilsøking. Utskriftserklæring.
feilsøkings. Utskrift sender utdata til umiddelbar vindu, selv om vinduet er skjult. Hvis VBEs umiddelbare vindu ikke er synlig, trykk Ctrl + G (eller velg Vis → Umiddelbart vindu). Her er noen utdata i vinduet Immediate.
I motsetning til MsgBox, Debug. Utskriftserklæringer stopper ikke koden din. Så du må holde øye med vinduet Umiddelbart for å se hva som skjer.
Når du har feilsøkt koden din, må du fjerne all debuggen. Skriv ut uttalelser. Selv store selskaper som Microsoft glemmer til og med å fjerne feilen sin. Skriv ut uttalelser. I flere tidligere versjoner av Excel ble hver gang Add-in for Analysis ToolPak åpnet, du ser flere merkelige meldinger i vinduet Umiddelbart. Det problemet ble endelig løst i Excel 2007.
Bruke VBA-feilsøkeren
Excel-designerne er godt kjent med begrepet feil. Derfor inneholder Excel et sett med feilsøkingsverktøy som kan hjelpe deg med å rette opp problemer i VBA-koden din.
