【问题标题】:Dynamic Refreshing of Data connections in Excel using VBA使用 VBA 在 Excel 中动态刷新数据连接
【发布时间】:2015-06-29 16:22:29
【问题描述】:

我正在尝试构建一段 VBA,它会在每次打开工作簿时自动执行。这段代码应该首先检查该工作簿在该特定日期之前是否已打开,其次,如果尚未打开,则应刷新数据连接,然后关闭/保存工作簿。

我已经开发了以下我认为应该可以工作的代码(它没有)。

Private Sub Workbook_Open()
  Dim wsSheet As Worksheet
  On Error Resume Next
  Set wsSheet = Sheets("book_helper")
  On Error GoTo 0

  If wsSheet Is Nothing Then
    Sheets.Add.Name = "book_helper"
    ActiveWorkbook.RefreshAll
    Sheets("book_helper").Range("A1").Value = Date
    ActiveWorkbook.Close savechanges:=False
  Else
    If Sheets("book_helper").Range("A1").Value < Date Then
        ActiveWorkbook.RefreshAll
        Sheets("book_helper").Range("A1").Value = Date
        ActiveWorkbook.Close savechanges:=False
    End If
  End If

End Sub

当我打开此工作簿时,它根本不做任何事情(不打开并且不保存日期)。有没有更好的方法来做到这一点。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    它不起作用的原因是因为您将选项 savechanges 设置为 false,这意味着您陷入了永远不会满足条件的循环中。

    如果您将其更改为 true。工作簿将在关闭前保存第一次,因此随后将再次打开而无需任何操作,因为条件为真。

    【讨论】:

      猜你喜欢
      • 2016-03-27
      • 1970-01-01
      • 2013-12-05
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多