等到Application.Calculate完成

Seb*_*ler 22 excel events vba excel-vba

我可以强制我的vba脚本等到Application.Calculate完成后重新计算所有公式吗?

Sid*_*out 32

继我的评论之后,你可以使用DoEvents Application.CalculationState.看这个例子

Application.Calculate
If Not Application.CalculationState = xlDone Then
    DoEvents
End If
'~~> Rest of the code.
Run Code Online (Sandbox Code Playgroud)

如果你想要你也可以用a Do While Loop来检查Application.CalculationState

我也建议看这个链接

主题:Application.CalculationState属性

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

引用来自上面的链接

返回一个XlCalculationState常量,指示应用程序的计算状态,用于在Microsoft Excel中执行的任何计算.只读.

  • 我依赖这个示例代码,因为它通常在互联网上提供,但它不起作用.DoEvents将_not_阻塞,直到计算完成,并且在您的示例代码中实际上是无操作. (6认同)