我有一本名为Can Opener
的excel书,由我的任务调度程序打开。它在我的任务调度程序无法访问的共享驱动器上打开另一个工作簿,然后自行关闭.. Can Opener
工作正常。我遇到的问题是,其他工作簿的代码在打开时,如果是7pm系统时间执行更新宏以从服务器获取新数据。完成此操作后,文件将保存并关闭。数据工作簿打开,但不进行更新,并且不会自动保存和关闭。我已经打破了代码,所以它至少会更新,这也不起作用。我检查了几个论坛和其他位置,我仍然无法弄清楚问题是什么。我能得到一点帮助吗?
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
是我模块中宏的名称,它只执行模块中创建服务器连接并运行SQL的其他宏。如果手动运行或使用按钮运行,这可以正常工作,所以我知道错误不在这里。此外,我每晚都在晚上7点尝试运行此代码。
我真的很感谢能得到帮助的人。
答案 0 :(得分:2)
你确定DataBook_Open()会执行吗? 除非您从Auto_Open()或Workbook_Open()调用它,否则它可能不会。
试试这个最小的测试文件。用实际文件夹替换路径。
- 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