2010-10-13 13 views
5

Tengo una macro de ejecución prolongada, en la cual escribo mensajes periódicos a Salida solo para que el usuario sepa que están pasando algunas cosas. El problema es que la salida no se muestra hasta que la macro ha finalizado (a menos que tenga el cuadro de diálogo Continuar esperando? Abierto, por extraño que parezca).¿Hay un equivalente de DoEvents en las macros de Visual Studio?

¿Hay alguna forma de 'enjuagar' la cola de eventos?

+0

Es VB, ¿entonces DoEvents no funciona? –

+0

@Preet, es VBA (creo), y en cualquier caso, no veo el objeto 'Aplicación' en intellisense, pero tal vez me faltan algunas referencias. – Benjol

+0

Solo usa DoEvents, es una declaración en VBA. –

Respuesta

0

Si hace referencia a formularios de Windows, puede acceder a Application.DoEvents de forma normal.

que tienen el IDE principal responder a las actualizaciones de las ventanas y cierra en tiempo real mientras la macro sigue funcionando sólo con

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

Como tal se sugiere emplear un estándar de bucle DoEvents & Sleep(55) durante 250 milisegundos o menos Cuando desee asegurarse de que la interfaz de usuario se actualice, debe hacer el truco, junto con el SuppressUI=False.

+0

Buena idea, excepto que ... no parece hacer ninguna diferencia :) – Benjol

Cuestiones relacionadas