0

Can Opener我有一本由我的任务计划程序打开的 Excel 书。它在我的任务计划程序无法访问的共享驱动器上打开另一个工作簿,然后自行关闭.. Can Opener工作正常。我遇到的问题是,另一个工作簿的代码在打开时,如果是晚上 7 点系统时间执行更新宏以从服务器获取新数据。完成此操作后,文件将保存并关闭。数据工作簿打开,但没有发生更新,并且不会自动保存和关闭。我已将代码分解,因此它至少会更新,但这也不起作用。我已经检查了几个论坛和其他位置,但我仍然无法弄清楚问题是什么。我能得到一点帮助吗?

    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 点运行此代码。

我真的很感激我能得到的任何帮助。

4

1 回答 1

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

--test_data.xlsm-- 在 ThisWorkbook 对象中

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
于 2013-02-22T15:00:33.523 回答