5

我的一个电子表格处理各种计算,其中包括当前日期和时间,它会不时自动刷新一次,而不是手动按 F9 或更改其中一个单元格。

Excel中是否有某种方法可以将电子表格设置为每x秒自动重新计算一次?

我无法在 Excel 本身中找到设置,可能表明不存在此类功能。如果没有,这可以用VBA实现吗?(后者听起来可能是也可能不是一个愚蠢的问题,但我之前没有编写 Excel 宏的经验,因此不知道它在操作电子表格方面的能力是什么。)

4

2 回答 2

9

此代码将创建一个时钟,每 10 秒更新一次。
请注意,它只刷新特定单元格,而不是整个工作簿 - 这意味着您可以将计算选项保留在您满意的任何位置:

Dim SchedRecalc As Date

Sub Recalc()
'Change specific cells
Range("A1").Value = Format(Now, "dd-mmm-yy")
Range("A2").Value = Format(Time, "hh:mm:ss AM/PM")
'or use the following line if you have a cell you wish to update
Range("A3").Calculate

Call StartTime ' need to keep calling the timer, as the ontime only runs once
End Sub

Sub StartTime()
SchedRecalc = Now + TimeValue("00:00:10")
Application.OnTime SchedRecalc, "Recalc"
End Sub

Sub EndTime()
On Error Resume Next
Application.OnTime EarliestTime:=SchedRecalc, _
        Procedure:="Recalc", Schedule:=False
End Sub

并且,为了确保它停止,在This Workbook模块中:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
EndTime
End Sub
于 2013-07-29T13:32:05.143 回答
2

Goto Developer Visual basic Editor - 右键单击​​工作簿 - 插入模块(确保您有手动计算

在模块中

Sub run_over
Timetorun = Now + timevalue("00:00:10")
application.ontime timetorun,"Refresh_all"
End Sub

Sub Refresh_all
Activeworkbook.Refreshall
End Sub

Sub auto_close()
Application.OnTime timetorun, Refresh_all, , False
End Sub

根据需要更改“00:00:00”格式的时间

于 2013-07-29T13:05:00.727 回答