Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Introduktion till Debug.Print och MsgBox | Introduktion till VBA och Excels Objektmodell
Excel VBA för affärsautomatisering

Introduktion till Debug.Print och MsgBox

Svep för att visa menyn

Båda låter dig se ett värde medan din kod körs, men de är avsedda för två olika målgrupper, och att blanda ihop dem är en vanlig vana i början som är värd att medvetet rätta till.

Debug.Print

Debug.Print [outputlist]
  • outputlist — ett eller flera uttryck att skriva ut, valfritt sammanfogade med ; eller &;
  • Inga parenteser, inget returvärde — det är ett uttalande, inte en funktion;
  • Skriver alltid till Immediate Window.
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
Notering

Parenteser runt MsgBox-argument används endast när du fångar ett returvärde. Används det som en vanlig sats (ingen tilldelning), är parenteser faktiskt ett misstag — MsgBox("Done.") körs fortfarande, men så snart du lägger till ett andra argument utan tilldelning, ger MsgBox ("Continue?", vbYesNo) ett syntaxfel. Ta bort parenteserna för satsform, lägg till dem endast när du skriver result = MsgBox(...).

Vad varje används till egentligen

Ett enkelt test: fråga vem meddelandet faktiskt är till för. Om svaret är "mig, medan jag skriver och testar den här koden," använd Debug.Print — det kostar inget att ha kvar tillfälligt och inget att ta bort senare, eftersom det aldrig visas för någon som använder den färdiga arbetsboken. Om svaret är "personen som kör det här makrot just nu och behöver se detta," använd MsgBox — en bekräftelseruta eller ett "klart"-meddelande hör till denna kategori, eftersom de är en del av den färdiga upplevelsen snarare än ett felsökningshjälpmedel.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 5
some-alt