我希望有一个excel工作表自动计算函数之间的rand,而不必点击shift f9或计算工作簿/工作表。
我希望这样做是为了创建一些动画条件格式,但是即使打开自动计算功能,功能之间的兰特也不会自动更新。
答案 0 :(得分:1)
将以下代码放在标准模块中:
Public RunWhen As Double
Public Const cRunIntervalSeconds = 1
Public Const cRunWhat = "The_Sub"
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
schedule:=True
End Sub
Sub The_Sub()
Application.CalculateFullRebuild
StartTimer
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
procedure:=cRunWhat, schedule:=False
End Sub
这实现了1秒的自动重新计算:
StartTimer
StopTimer
改编自Chip Pearson
答案 1 :(得分:0)
所以我最终做了一个VB脚本,使用这个例子自动对电子表格做了一些事情:
VBA Macro On Timer style to run code every set number of seconds, i.e. 120 seconds
这基本上使所有公式都更新,而无需用户做任何事情(输入数据或计算)。