gpt4 book ai didi

vba - Excel VBA 计时器性能因哪个工作表处于事件状态而异?

转载 作者:行者123 更新时间:2023-12-02 11:55:43 26 4
gpt4 key购买 nike

我有一本包含许多工作表的工作簿,每张工作表都有不同数量的相互链接的方程。我有一个工作簿范围的 VBA 计时器,应该每 5 秒运行一次。

当我在没有很多公式的工作表上处于事件状态时,它似乎每 5 秒运行一次......但是,如果我随后将事件工作表更改为更“繁忙”的工作表,vba 计时器就是不响……或者即使它响了,也是几分钟后。直到我再次切换到不太繁忙的工作表,然后计时器像正常一样神奇地运行,而无需重置任何内容。

我没有专门针对繁忙工作表的任何特殊 VBA 代码...而且我不明白为什么 VBA 计时器代码不能在所有工作表上一致运行?如果计时器受到影响,它应该影响所有工作表,而不仅仅是某些工作表。

这是 VBA 计时器代码:

Sub TimerTick()

On Error GoTo ErrorHandler
If toggletimer = True Then
RunMyCode
runWhen_ES = Now() + TimeValue("00:00:05")
Application.OnTime EarliestTime:=runWhen_ES, Procedure:="TimerTick", Schedule:=True
End If
ErrorHandler:

End Sub

最佳答案

问题是 Excel 很难运行宏并让其他进程运行。在指定等待条件后添加此内容:

DoEvents

Excel 将释放用于运行宏的资源和线程,而不是在整个等待过程中对其进行搅动。这应该允许您的电子表格在等待周期之间正常运行。

关于vba - Excel VBA 计时器性能因哪个工作表处于事件状态而异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122835/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com