Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每晚自动刷新excel中的嵌入式查询。这能做到吗?_Excel_Vba_Refresh - Fatal编程技术网

每晚自动刷新excel中的嵌入式查询。这能做到吗?

每晚自动刷新excel中的嵌入式查询。这能做到吗?,excel,vba,refresh,Excel,Vba,Refresh,如果我能在每天早上6点上班前更新所有的查询、数据透视表和公式,这将对我有很大的帮助 我有一段代码,是从堆栈溢出中得到的,它会自动更新查询 Public Sub Refresh() 'refresh ActiveWorkbook.RefreshAll Application.OnTime alertTime, "Refresh" End Sub 我知道它会更新查询,但我希望将其设置为在特定时间执行此操作,然后执行所有透视表和公式。如果它使用上次正确更新的单元格作为检查来更新单元格,也

如果我能在每天早上6点上班前更新所有的查询、数据透视表和公式,这将对我有很大的帮助

我有一段代码,是从堆栈溢出中得到的,它会自动更新查询

Public Sub Refresh()
'refresh
ActiveWorkbook.RefreshAll

    Application.OnTime alertTime, "Refresh"

End Sub
我知道它会更新查询,但我希望将其设置为在特定时间执行此操作,然后执行所有透视表和公式。如果它使用上次正确更新的单元格作为检查来更新单元格,也会很好


谢谢大家!我很感激

我想你想通过.vbs启动这个。将此代码复制并粘贴到文本文件(记事本)中,保存时,将“.txt”更改为“所有文件”,并将其保存为“launchMacros.vbs”(或您拥有的其他文件)


然后使用windows任务计划程序在可以访问Excel文件的计算机上启动此.vbs文件,并将被唤醒。如果您不确定如何使用任务调度器,只需搜索web,这是很常见的,您会找到很多相关资源。

您的宏将完美地完成您希望它完成的任务,只需进行一些小的调整

ActiveWorkbook.RefreshAll
确实会刷新工作簿中的所有外部数据区域和数据透视表。要计算公式,请使用
Application.calculate

至于您希望子执行的具体时间,
Application.OnTime
接受一个时间值。因此,您可以插入次日上午6点的时间值,例如使用:

Dim y As Long
Dim m As Long
Dim d As Long

y = Year(Now)
m = Month(Now)
d = Day(Now)

Application.OnTime DateSerial(y, m, d + 1) + TimeSerial(6, 0, 0), "Refresh"
Dim y As Long
Dim m As Long
Dim d As Long

y = Year(Now)
m = Month(Now)
d = Day(Now)

Application.OnTime DateSerial(y, m, d + 1) + TimeSerial(6, 0, 0), "Refresh"