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
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat