需要代码在excel中每隔15分钟运行一次宏,但仅当用户打开文件时

需要代码在excel中每隔15分钟运行一次宏,但仅当用户打开文件时,excel,vba,Excel,Vba,我正在做一个项目,更新生产计划中的生产记录。我编写了一个宏,用于将数据拉入生产计划,但我需要每隔15分钟自动执行文件中的宏,但只能在用户打开生产计划时执行。我尝试过在特定时间使用“Application.OnTime”,但如果制造日程关闭,它似乎会打开。我是VBA的新手,因此非常感谢对代码的任何帮助。我使用的代码非常基本: Private Sub Workbook_Open() 'Application.OnTime TimeValue("08:00:30"), "Open_SFCDB" 'A

我正在做一个项目,更新生产计划中的生产记录。我编写了一个宏,用于将数据拉入生产计划,但我需要每隔15分钟自动执行文件中的宏,但只能在用户打开生产计划时执行。我尝试过在特定时间使用“Application.OnTime”,但如果制造日程关闭,它似乎会打开。我是VBA的新手,因此非常感谢对代码的任何帮助。我使用的代码非常基本:

Private Sub Workbook_Open()

'Application.OnTime TimeValue("08:00:30"), "Open_SFCDB"
'Application.OnTime TimeValue("08:16:30"), "Open_SFCDB"
'Application.OnTime TimeValue("08:32:30"), "Open_SFCDB"
'Application.OnTime TimeValue("08:48:30"), "Open_SFCDB"
'Application.OnTime TimeValue("09:04:30"), "Open_SFCDB"
......Etc, Etc for 24 hr period

'End Sub`

尝试将其设置为活动工作簿,并仅在成功后继续

On Error Resume Next
Workbooks("ManufacturingSchedule").Activate
If Err <> 0 then
   .... do your update etc ....
end if
出错时继续下一步
工作簿(“制造计划”)。激活
如果错误为0,则
.... 做你的更新等。。。。
如果结束

您可能希望将Application.OnTime过程放在第二个工作簿中。让它检查您的生产计划在运行时是否打开。

OnTime
是一种有效的方法。发布你的代码,这样我们就可以帮助解释为什么它会在不应该的时候打开文件。Brian,谢谢你的回答,因为我说我对VBA很陌生,你能解释一下你建议的“错误恢复下一步…”代码应该放在我的基本代码中的什么地方吗(现在包括在我的原始问题中)