我有VBA,在VBA中,我首先使用xlManual在Excel表中进行计算。
程序完成后,切换回xl.Automatic。
Sub Run_Procedure()
Application.Calculation = xlManual
Call Procedure
Application.Calculation = xlAutomatic
End Sub所有这些都是应该做的。
现在,我想知道是否有一种方法可以将应用程序更改为xlAutomatic,而不需要实际re-calculating文件。
基本上,我只希望procedure完成后,User可以继续正常地处理文件。
为了避免在procedure之后加载时间,不应该再进行计算。
你对此有什么想法吗?
发布于 2020-04-20 13:36:38
没有测试,但我能想到的唯一方法是使用Application.CalculationInterruptKey和Application.SendKeys()。
也许有点像..。
With Application
.CalculationInterruptKey = xlEscKey
.Calculation = xlCalculationAutomatic
.SendKeys ("{esc}")
Debug.Print .CalculationState
End With据我所读,这将中断工作表重新计算,方法是将esc键按下到应用程序,但我无法确认它是否正常工作(因为我没有足够大的数据,需要一些时间计算。
另外,如果您想将CalculatonInterruptKey返回到它的原始值,只需在上面的代码之前分配一个变量它的值,然后在代码将变量分配回属性之后。
https://stackoverflow.com/questions/61321555
复制相似问题