如何使用VBA計時器定期更新Excel工作表

立即分享:

本文介紹如何定期刷新工作表或圖表。 本練習構建一個計時器,該計時器每分鐘刷新一次工作表,以反映源數據中的更改。

本文假定讀者已顯示“開發人員”功能區,並且熟悉VBA編輯器。 如果沒有,請使用Google“ Excel開發人員標籤”或“ Excel代碼窗口”。

可以找到本練習中使用的工作簿示例 此處.

動態報告的用途可能是:

  • 讀取公司電話系統隨附的專有資料庫,以分析通話記錄。
  • 每15分鐘生成一個隨機數,用於獎賞或抽獎。
  • 當達到特定級別時,自動從本地數據庫發送電子郵件。 (此處,計時器將根據達到的級別來決定是否觸發該過程)。

或者,我們將使用的一種:

  • 在互聯網上顯示最新的USD / EUR匯率。

數據是從 雅虎財經網站 每隔一分鐘。 一旦成功測試,應替換更長的處理間隔。

界面

打開一個新的工作簿;

將第一張工作表命名為“顯示”。 由於將從Web填充表D8至E11,因此無需輸入值或行標題。 其餘的是可選的。準備界面

守則

打開VBA代碼窗口,然後插入模塊。 將以下代碼複製到模塊中。

Auto_Open 事件會在工作簿開啟時啟動計時器,並在工作簿關閉時停止計時器,除非開發人員在開發過程中中斷程式碼。VBA代碼

Sub Auto_Open()
AlertTime = Now + TimeValue("00:01:00") 'interval in minutes
Application.OnTime AlertTime, "Ticker"      'call Sub Ticker, below
End Sub

Sub Ticker()
    Dim currBuy As String
    Dim currSell As String

    Range("D8:F11").ClearContents            'prepare the destination for the web data
    currBuy = "USD"
    currSell = "EUR"
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$8"))
        .Name = "q?s=" & currSell & currBuy & "=X"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = """table1"""
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    AlertTime = Now + TimeValue("00:01:00") ‘move trigger on a minute
    Application.OnTime AlertTime, "Ticker"
End Sub

結果

每隔n分鐘,“顯示”表格中的表格就會從Yahoo網站上進行更新。 有關更複雜的數據連接,請訪問Microsoft網站。

恢復損壞的工作簿

Excel有時會在意想不到的時候崩潰,這很可能是由於資源不足造成的。在這種情況下,原始檔案可能會永久損壞,並且無法重新開啟。如果沒有定期備份,就需要使用復原工具。 損壞的Excel 文件將是無價的。

作者簡介:

Felix Hooker是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 rar修復 和sql恢復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。