我的一个电子表格涉及各种计算,其中包括当前的日期和时间,如果让它自动刷新一次,而不是手动不得不按F9或更改其中一个,这将是很好的。细胞
在Excel中是否有某种方法可以将电子表格设置为每x秒自动重新计算一次?
我无法在Excel中找到设置,可能表示不存在此类功能。如果没有,可以通过VBA实现吗? (后者可能听起来也可能不是一个愚蠢的问题,但我之前没有编写Excel宏的经验,因此不知道它在操作电子表格方面的功能是什么。)
答案 0 :(得分:6)
此代码将创建一个时钟,每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
并确保停止,在此工作簿模块中
Private Sub Workbook_BeforeClose(Cancel As Boolean)
EndTime
End Sub
答案 1 :(得分:2)
转到开发人员Visual Basic编辑器 - 右键单击工作簿 - 插入模块(确保您有手动计算
模块中的
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”格式的时间