【问题标题】:Excel VBA: Refresh All and SaveExcel VBA:全部刷新并保存
【发布时间】:2018-03-22 10:03:27
【问题描述】:

我有一个非常简单的任务,就是要刷新工作簿上的所有内容(仅包含 3 个带有外部数据的表)并每 5 分钟保存一次。 我目前通过以下方式每 5 分钟运行一次自动保存工作簿:

Sub SaveWb()
    ThisWorkbook.Save
    Application.OnTime Now + TimeValue("00:05:00"), "SaveWb"
End Sub

&

Private Sub Workbook_Open()
    Application.OnTime Now + TimeValue("00:05:00"), "SaveWb"
End Sub

并且使用后台自动刷新的连接属性在 5 分钟内刷新表格。 但是,我一直遇到excel会提示的问题:

“这将取消挂起的数据刷新。继续吗?[OK] [Cancel]”

我想知道我是否也可以在 VBA 中运行刷新,这样它们就可以很好地运行而不会阻止刷新。虽然使用 wb.RefreshAll 函数看起来很容易,但我不存在的 vba 技能不允许我将它们放在一起....

非常感谢任何帮助!

【问题讨论】:

    标签: excel vba save refresh


    【解决方案1】:

    需要调用 Application.DisplayAlerts=False 来禁用警告

    【讨论】:

      【解决方案2】:

      我做了一些实验,通过编辑部分代码,它现在可以工作了:

      Sub SaveWb()
          ThisWorkbook.RefreshAll
          ThisWorkbook.Save
          Application.OnTime Now + TimeValue("00:05:00"), "SaveWb"
      End Sub
      

      不再“这将取消挂起的数据刷新。继续吗?”

      【讨论】:

      • 当你从另一个 sub 调用它时这不起作用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 2012-02-14
      • 2019-01-19
      相关资源
      最近更新 更多