自动打开用于使用VBA执行另一个macros

我有一个由我的任务调度程序打开的名为Can Opener的Excel书。 它打开另一个共享驱动器上的工作簿,我的任务调度程序无法访问,然后closures自己.. Can Opener可以正常工作。 我遇到的问题是其他工作簿的代码,打开时,如果是晚上7点系统时间执行更新macros从服务器获取新的数据。 一旦完成,文件保存并closures。 数据工作簿将打开,但不会进行更新,也不会自动保存并closures。 我打破了代码,所以至less会更新,这是行不通的。 我已经查过了几个论坛和其他地方,但是我仍然不知道问题是什么。 我可以得到一些帮助吗?

  Sub DataBook_Open() Application.EnableCancelKey = xlDisabled If Hour(Now) = 7 And Weekday(Now, vbSunday) < 7 Then Run_Update Me.Save Application.Quit Else: Me.Save Application.Quit End If End Sub 

Run_Update是模块中macros的名称,它只是执行模块中创build服务器连接并运行SQL的其他macros。 这工作正常,如果手动运行,或运行一个button,所以我知道错误不在这里。 此外,我正试图在晚上7点每晚运行此代码。

我真的很感激任何帮助,我可以让人。

你确定DataBook_Open()执行吗? 它可能不会除非你从Auto_Open()或Workbook_Open()调用它。

试试这个最小的testing文件。 用您的实际文件夹replacepath。

–can_opener.xlsm–

 Sub OpenOtherWorkbook() Dim sWbkPath As String sWbkPath = ThisWorkbook.Path & "\" & "test_data.xlsm" Dim wbkData As Workbook Set wbkData = Workbooks.Open(sWbkPath) End Sub 

– ThisWorkbook对象中的–test_data.xlsm–

 Private Sub Workbook_Open() If Hour(Now) = 9 Then 'replace with your condition UpdateData ThisWorkbook.Save DoEvents Else DoEvents End If ThisWorkbook.Close 'Application.Quit End Sub Sub UpdateData() ThisWorkbook.Sheets(1).Range("A1").Value = Format(Now, "yyyy-mm-dd:hh\hmm") End Sub