Excel Randbetween - 不使用Shift-F9刷新

时间:2018-06-05 13:24:47

标签: excel excel-formula

我希望有一个excel工作表自动计算函数之间的rand,而不必点击shift f9或计算工作簿/工作表。

我希望这样做是为了创建一些动画条件格式,但是即使打开自动计算功能,功能之间的兰特也不会自动更新。

2 个答案:

答案 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

这基本上使所有公式都更新,而无需用户做任何事情(输入数据或计算)。