MS Excel - 如何让单元格每隔5秒自动刷新?

4
我在Excel表格中有一个单元格,需要每5秒刷新一次。
MS Excel本身可以设置刷新,但只能每1分钟刷新一次,这太长了不够频繁。
我需要一些VBA或宏代码,每5秒运行一次,并且执行与手动点击“每5秒刷新”相同的操作,如下所示:

Refresh

不知何故,我找不到任何相关的示例,因为我完全不知道如何在VBA中工作。

3个回答

3

您可以使用Application.OnTime函数进行自动刷新的调度。创建以下VBA子程序并执行即可。每5秒钟将自动计算A1单元格。

Sub UpdateCell()
    ActiveWorkbook.RefreshAll
    Application.OnTime Now + TimeValue("00:00:5"), "UpdateCell"
End Sub

不起作用。如果我点击运行(VBA),什么也不会发生,代码似乎根本没有运行。 - Totallama
是的,现在似乎正在刷新(光标每5秒钟更改为加载模式),但单元格中的值保持不变... - Totallama
你能提供更多关于单元格公式的细节或者你想通过刷新实现什么吗?如果刷新取决于点击或其他事件,我们需要以不同的方式增强代码。 - AlbertLau14100
我已经更新了子程序以刷新所有内容。缺点是每5秒钟都要刷新整个工作簿。另一种方法是仅刷新特定的数据连接。 - AlbertLau14100
让我们在聊天中继续这个讨论 - AlbertLau14100
显示剩余3条评论

2
另一个答案描述了如何刷新整个页面,但是提问者说他只想更新一个特定的单元格。 以下是每5秒更新(计算)A1单元格的方法。
 Sub Calculate_Range()    
   Range("A1").Calculate    
   Application.OnTime DateAdd("s", 5, Now), "Calculate_Range"    
 End Sub

1
理解了,现在它可以工作了:
Sub UpdateCell()
    ActiveWorkbook.RefreshAll
    Application.OnTime Now + TimeValue("00:00:5"), "List1.UpdateCell"
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接