2012-06-30 15 views

risposta

28

Oltre ai miei commenti, è possibile utilizzare DoEvents con Application.CalculationState. Vedere questo esempio

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

Se si vuole si può anche utilizzare un Do While Loop per verificare la presenza di Application.CalculationState

consiglio anche vedere questo link

Topic: Application.CalculationState proprietà

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

citazione dal link qui sopra

Restituisce una costante XlCalculationState che indica lo stato di calcolo della richiesta, per tutti i calcoli che vengono eseguite in Microsoft Excel. Sola lettura.

+0

+1 risposta piacevole Sid. – brettdj

+0

Questo era esattamente il punto, grazie! –

+4

Mi sono basato su questo codice di esempio poiché è comunemente fornito su Internet ma non funziona. DoEvents non sarà bloccato fino al completamento del calcolo ed è effettivamente un no-op nel codice di esempio. – user65

0

Ho utilizzato il codice per risolvere un problema in cui un ciclo di calcolo si blocca parzialmente. Ho pensato che potesse essere dovuto al fatto che era necessario attendere fino al completamento del calcolo completo prima di immettere il successivo insieme di valori. Quando ho inserito il codice Application.Calculate, problema risolto. Loop ora corre fino al completamento.

Problemi correlati