Introduksjon til Debug.Print og MsgBox
Sveip for å vise menyen
Begge lar deg se en verdi mens koden kjører, men de er laget for to forskjellige målgrupper, og det er en vanlig nybegynnerfeil å blande dem — noe som bør rettes bevisst.
Debug.Print
Debug.Print [outputlist]
outputlist— ett eller flere uttrykk som skal skrives ut, eventuelt sammenkoblet med;eller&;- Ingen parenteser, ingen returverdi — dette er en setning, ikke en funksjon;
- Skriver alltid 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 rundt argumentene til MsgBox brukes kun når du fanger en returverdi. Brukt som en enkel setning (uten tildeling), er parenteser faktisk en feil — MsgBox("Done.") kjører fortsatt, men så snart du legger til et andre argument uten tildeling, vil MsgBox ("Continue?", vbYesNo) gi en syntaksfeil. Sløyf parentesene for setningsform, og bruk dem kun når du skriver result = MsgBox(...).
Hva hver av dem faktisk brukes til
En enkel test: spør hvem meldingen faktisk er ment for. Hvis svaret er "meg, mens jeg skriver og tester denne koden," bruk Debug.Print — det koster ingenting å la det stå midlertidig og ingenting å fjerne det senere, siden det aldri vises for noen som bruker den ferdige arbeidsboken. Hvis svaret er "personen som kjører denne makroen akkurat nå, som må se dette," bruk MsgBox — en bekreftelsesdialog eller en "ferdig"-melding faller inn under denne kategorien, fordi de er en del av den ferdige opplevelsen og ikke bare et hjelpemiddel for feilsøking.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår