簡體   English   中英

使用VBA在Excel中動態刷新數據連接

[英]Dynamic Refreshing of Data connections in Excel using VBA

我正在嘗試構建一個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

當我打開此工作簿時,它根本不執行任何操作(不打開且不保存日期)。 有沒有更好的辦法做到這一點。

它不起作用的原因是因為您將選項savechanges設置為false,這意味着您陷入了一個永遠無法滿足條件的循環中。

如果將其更改為true。 該工作簿將在關閉前保存第一次時間,因此,由於條件為真,因此隨后將再次打開而無需采取任何措施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM