Felsökningstekniker för Excel 2016 VBA

Du kan stöta på några problem med din VBA-kod, men hur hittar du problemet? Ibland kan din VBA-kod behöva lite felsökning. Fortsätt läsa för att upptäcka de fyra vanligaste metoderna för att felsöka Excel VBA-kod:

  • Undersöker koden

  • Infoga MsgBox-funktioner på olika platser i din kod

  • Infogar Debug.Print-satser

  • Använda Excel inbyggda felsökningsverktyg

Undersöker din kod

Den kanske enklaste felsökningstekniken är helt enkelt att titta närmare på din kod för att se om du kan hitta problemet. Denna metod kräver förstås kunskap och erfarenhet. Med andra ord, du måste veta vad du gör. Om du har tur hoppar felet ut direkt, och du slår dig i pannan och säger: "Oj!" När smärtan i pannan minskar kan du åtgärda problemet.

Lägg märke till användningen av orden "Om du har tur." Det beror på att du ofta upptäcker fel när du har arbetat med ditt program i åtta timmar i sträck, klockan är 02.00 och du kör på koffein och viljestyrka. Vid sådana tillfällen har du tur om du ens kan se din kod, än mindre hitta felen. Bli därför inte förvånad om det inte räcker att bara undersöka din kod för att få dig att hitta och radera alla buggar den innehåller.

Använda MsgBox-funktionen

Ett vanligt problem i många program innebär att en eller flera variabler inte får de värden du förväntar dig. I sådana fall är övervakning av variabeln(erna) medan din kod körs en användbar felsökningsteknik. Ett sätt att göra detta är genom att infoga tillfälliga MsgBox-funktioner i din rutin. Till exempel, om du har en variabel som heter CellCount, kan du infoga följande uttalande:

MsgBox CellCount

När du kör rutinen visar MsgBox-funktionen CellCounts värde.

Det är ofta bra att visa värdena för två eller flera variabler i meddelanderutan. Följande sats visar det aktuella värdet för två variabler: LoopIndex (1) och CellCount (72), separerade med ett mellanslag.

MsgBox LoopIndex & " " & CellCount

Lägg märke till att de två variablerna kombineras med sammanlänkningsoperatorn (&) och infoga ett blanksteg mellan dem. Annars sammanfogar meddelanderutan de två värdena så att de ser ut som ett enda värde. Du kan också använda den inbyggda konstanten, vbNewLine, i stället för mellanslagstecknet. vbNewLine infogar en radmatningsbrytning, som visar texten på en ny rad. Följande uttalande visar tre variabler, var och en på en separat rad:

Felsökningstekniker för Excel 2016 VBA

Använda en meddelanderuta för att visa värdet på tre variabler.

MsgBox LoopIndex & vbNewLine & CellCount & vbNewLine & MyVal

Denna teknik är inte begränsad till att övervaka variabler. Du kan använda en meddelanderuta för att visa all möjlig användbar information medan din kod körs. Om din kod till exempel går igenom en serie ark visar följande sats namnet och typen av det aktiva arket:

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

Om din meddelanderuta visar något oväntat, tryck på Ctrl+Break, och du ser en dialogruta som talar om för dig att kodexekveringen har avbrutits, du har fyra val:

  • Klicka på knappen Fortsätt. Koden fortsätter att köras.

  • Klicka på knappen Avsluta. Utförandet upphör.

  • Klicka på Debug-knappen. VBE går in i felsökningsläge.

  • Klicka på knappen Hjälp. En hjälpskärm berättar att du tryckte på Ctrl+Break. Det är med andra ord inte särskilt användbart.

    Felsökningstekniker för Excel 2016 VBA

    Att trycka på Ctrl+Break stoppar exekveringen av din kod och ger dig några val.

Om ditt tangentbord inte har en bryttangent, försök att trycka på Ctrl+ScrollLock.

Använd gärna MsgBox-funktioner ofta när du felsöker din kod. Se bara till att du tar bort dem när du har identifierat och åtgärdat problemet.

Infogar Debug.Print-satser

Som ett alternativ till att använda MsgBox-funktioner i din kod, kan du infoga en eller flera tillfälliga Debug.Print-satser. Använd dessa satser för att skriva ut värdet på en eller flera variabler i fönstret Omedelbart. Här är ett exempel som visar värdena för tre variabler:

Debug.Print LoopIndex, CellCount, MyVal

Lägg märke till att variablerna är separerade med kommatecken. Du kan visa hur många variabler du vill med en enda Debug.Print-sats.

Debug.Print skickar utdata till Immediate-fönstret även om det fönstret är dolt. Om VBE:s omedelbara fönster inte är synligt, tryck på Ctrl+G (eller välj Visa → Omedelbart fönster). Här är lite utdata i fönstret Omedelbart.

Felsökningstekniker för Excel 2016 VBA

En Debug.Print-sats skickar utdata till fönstret Immediate.

Till skillnad från MsgBox stoppar Debug.Print-satser inte din kod. Så du måste hålla ett öga på fönstret Direkt för att se vad som händer.

När du har felsökt din kod, se till att ta bort alla Debug.Print-satser. Även stora företag som Microsoft glömmer ibland bort att ta bort sina Debug.Print-uttalanden. I flera tidigare versioner av Excel, varje gång Analysis ToolPak-tillägget öppnades, skulle du se flera konstiga meddelanden i fönstret Direkt. Det problemet åtgärdades äntligen i Excel 2007.

Använder VBA debugger

Excel-designerna är väl förtrogna med begreppet buggar. Följaktligen innehåller Excel en uppsättning felsökningsverktyg som kan hjälpa dig att rätta till problem i din VBA-kod.


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: […]

Vad betyder lösarens felmeddelanden i Excel?

Vad betyder lösarens felmeddelanden i Excel?

För enkla problem hittar Solver i Excel vanligtvis snabbt de optimala Solver-variabelvärdena för objektivfunktionen. Men i vissa fall har Solver problem med att hitta Solver-variabelvärdena som optimerar objektivfunktionen. I dessa fall visar Solver vanligtvis ett meddelande eller ett felmeddelande som beskriver eller diskuterar problemet som […]