2012-06-30 19 views

Respuesta

28

Además de mis comentarios, puede usar DoEvents con el Application.CalculationState. Vea este ejemplo

Application.Calculate 
If Not Application.CalculationState = xlDone Then 
    DoEvents 
End If 
'~~> Rest of the code. 

Si lo desea, también puede utilizar un Do While Loop para comprobar si hay Application.CalculationState

También recomendaría ver este enlace

Tema: Application.CalculationState Propiedad

Enlace: http://msdn.microsoft.com/en-us/library/bb220901%28v=office.12%29.aspx

Cita de lo anterior Enlace

Devuelve una constante XlCalculationState que indica el estado de cálculo de la aplicación, para cualquier cálculo que se están realizando en Microsoft Excel. Solo lectura.

+0

+1 nice answer Sid. – brettdj

+0

¡Ese era exactamente el punto, gracias! –

+4

Me basé en este código de ejemplo, ya que se proporciona comúnmente en Internet, pero no funciona. DoEvents no bloqueará hasta que se complete el cálculo y, efectivamente, no operará en su código de ejemplo. – user65

0

Utilicé el código para resolver un problema donde un ciclo de cálculo se bloqueaba en parte. Pensé que podría deberse a que tenía que esperar hasta que se completara el cálculo completo antes de ingresar el siguiente conjunto de valores. Cuando inserté el código Application.Calculate, el problema fue resuelto. Loop ahora corre hasta su finalización.

Cuestiones relacionadas