Gdzie rejestruje się VBA Debug.Print?

Odpowiedzi:

354

Gdzie chcesz zobaczyć wynik?

Wiadomości wysyłane przez Debug.Printzostaną wyświetlone w bezpośrednim oknie, które można otworzyć, naciskając Ctrl+G .

Możesz także aktywować tak zwane okno natychmiastowe , klikając Widok -> Okno bezpośrednie na pasku narzędzi VBE

wprowadź opis zdjęcia tutaj

Dirk Vollmar
źródło
6
Dzieje się tak, jeśli korzystasz z aplikacji biurowej obsługującej VBA, ale jeśli korzystasz z WSH, może być konieczne użycie MsgBox ( dreszcz ) lub innej podobnej techniki, ponieważ bezpośrednie okno nie jest dostępne.
AJ.
85

Debug.Print wyjścia do okna „Natychmiastowe”.

Debuguj. Wydrukuj wyniki w oknie Natychmiastowe

Możesz także po prostu wpisać, ?a następnie wypowiedzieć bezpośrednio w bezpośrednim oknie (a następnie nacisnąć Enter), a wynik pojawi się tuż poniżej, jak poniżej:

po prostu wpisz?  a następnie wyciąg bezpośrednio do bezpośredniego okna

Może to być bardzo przydatne, aby szybko wygenerować właściwość obiektu ...

? myWidget.name

... aby ustawić właściwość obiektu ...

myWidget.name = "thingy"

... lub nawet wykonać funkcję lub wiersz kodu w trybie debugowania:

Sheet1.MyFunction()

LimaNightHawk
źródło
7
lol, co za nieintuicyjna nazwa. „Natychmiastowe okno” zawsze sprawiało, że myślałem o bieżącym oknie. Lub główne okno aplikacji.
j riv
5
Ponieważ możesz wpisać kod i zobaczyć wyniki „natychmiast”, możesz zobaczyć, dlaczego nazwali go tak, zamiast jakiejś dziwnej logiki, gdzie „natychmiast” oznacza „bieżący”.
Rick Henderson
3
Tak, podczas gdy każda osoba o dziwnej logice, która jednak natychmiast wyczuła terminologię, mogłaby natychmiast nazwać ją „konsolą debugowania”. Ale ponieważ VBA jest tak świetnym językiem, że nigdy nie popełniasz w nim błędu, nigdy nie musisz niczego debugować. Używasz tego okna tylko do natychmiastowego zademonstrowania natychmiastowych wspaniałych funkcji tego bezpośredniego języka.
Palo
2
Och, moja wina: wywołanie okna, które nie może natychmiast pomieścić więcej niż 200 linii, „konsola debugowania” byłoby natychmiast błędem.
Palo,