Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Introduktion til Debug.Print og MsgBox | Introduktion til VBA og Excel-objektmodellen
Excel VBA til Forretningsautomatisering

Introduktion til Debug.Print og MsgBox

Stryg for at vise menuen

Begge giver dig mulighed for at se en værdi, mens din kode kører, men de er designet til to forskellige målgrupper, og det er en almindelig begynderfejl at forveksle dem — en vane, der er værd at rette op på med vilje.

Debug.Print

Debug.Print [outputlist]
  • outputlist — et eller flere udtryk, der skal udskrives, eventuelt forbundet med ; eller &;
  • Ingen parenteser, ingen returværdi — det er en sætning, ikke en funktion;
  • Skriver altid til 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
Bemærk

Parenteser omkring MsgBox-argumenterne bruges kun, når du gemmer en returværdi. Bruges den som en almindelig sætning (uden tildeling), er parenteser faktisk en fejl — MsgBox("Done.") kører stadig, men så snart du tilføjer et andet argument uden tildeling, giver MsgBox ("Continue?", vbYesNo) en syntaksfejl. Undlad parenteser i sætning-form, og tilføj dem kun, når du skriver result = MsgBox(...).

Hvad de hver især faktisk bruges til

En simpel test: spørg, hvem beskeden faktisk er til. Hvis svaret er "mig, mens jeg skriver og tester denne kode," skal du bruge Debug.Print — det koster intet at lade den stå midlertidigt og intet at fjerne den senere, da den aldrig vises for nogen, der bruger den færdige projektmappe. Hvis svaret er "personen, der kører denne makro lige nu, og som skal se dette," skal du bruge MsgBox — en bekræftelsesdialog eller en "færdig"-besked hører til denne kategori, fordi de er en del af den færdige oplevelse og ikke kun et fejlfindingsværktøj.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 5
some-alt