本文介紹如何定期刷新工作表或圖表。 本練習構建一個計時器,該計時器每分鐘刷新一次工作表,以反映源數據中的更改。
本文假定讀者已顯示“開發人員”功能區,並且熟悉VBA編輯器。 如果沒有,請使用Google“ Excel開發人員標籤”或“ Excel代碼窗口”。
可以找到本練習中使用的工作簿示例 此處.
動態報告的用途可能是:
- 讀取公司電話系統隨附的專有資料庫,以分析通話記錄。
- 每15分鐘生成一個隨機數,用於獎賞或抽獎。
- 當達到特定級別時,自動從本地數據庫發送電子郵件。 (此處,計時器將根據達到的級別來決定是否觸發該過程)。
或者,我們將使用的一種:
- 在互聯網上顯示最新的USD / EUR匯率。
數據是從 雅虎財經網站 每隔一分鐘。 一旦成功測試,應替換更長的處理間隔。
界面
打開一個新的工作簿;
將第一張工作表命名為“顯示”。 由於將從Web填充表D8至E11,因此無需輸入值或行標題。 其餘的是可選的。
守則
打開VBA代碼窗口,然後插入模塊。 將以下代碼複製到模塊中。
Auto_Open 事件會在工作簿開啟時啟動計時器,並在工作簿關閉時停止計時器,除非開發人員在開發過程中中斷程式碼。
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

