2010-10-13 11 views
5

Ho una macro di lunga durata, in cui scrivo messaggi periodici all'output solo in modo che l'utente sappia qualcosa che sta accadendo. Il problema è che l'output non viene visualizzato fino a quando la macro non ha finito (a meno che non si abbia la finestra di dialogo Continua in attesa? Aperta, abbastanza stranamente).Esiste un equivalente di DoEvents nelle macro di Visual Studio?

Esiste comunque lo svuotamento della coda eventi?

+0

È VB, quindi DoEvents non funziona? –

+0

@Preet, è VBA (credo), e in ogni caso non vedo l'oggetto 'Applicazione' in intellisense, ma forse mi mancano alcuni riferimenti? – Benjol

+0

Basta usare DoEvents, è una dichiarazione in VBA. –

risposta

0

Se si fa riferimento a Windows Form, è possibile accedere a Application.DoEvents normalmente.

ho l'IDE principale rispondere agli aggiornamenti delle finestre e chiude in tempo reale durante la macro è ancora in esecuzione con un solo

DTE.SuppressUI = False 
    Threading.Thread.Sleep(5000) 

Come tale Suggerisco usando uno standard DoEvents & Sleep(55) ciclo per 250 millisecondi o giù di lì quando vuoi assicurarti che l'interfaccia utente sia aggiornata, devi fare il trucco, insieme allo SuppressUI=False.

+0

Buona idea, tranne che ... non sembra fare alcuna differenza :) – Benjol

Problemi correlati