本文介绍如何定期刷新工作表或图表。 本练习构建一个计时器,每分钟刷新一次工作表,反映源数据的变化。
本文假定读者已显示开发人员功能区并且熟悉 VBA 编辑器。 如果没有,请谷歌“Excel Developer Tab”或“Excel Code Window”。
可以找到本练习中使用的工作簿示例 开始.
动态报告的用途可能是:
- 阅读专着tary 随贵公司电话系统提供的数据库,用于分析呼叫。
- 每 15 分钟生成一个随机数,用于抽奖或抽奖。
- 满足特定级别时自动从本地数据库发送电子邮件。 (这里计时器将根据达到的级别决定是否触发进程)。
或者,我们将使用的那个:
- 显示来自互联网的最新美元/欧元汇率。
数据是从 雅虎财经网站 每隔一分钟。 测试成功后,应更换更长的处理间隔。
界面
打开一个新的工作簿;
将第一张表命名为“显示”。 由于表格 D8 到 E11 将从网络中填充,因此不需要输入值或行标题。 其余的是可选的。
守则
打开 VBA 代码窗口并插入一个模块。 将下面的代码复制到模块中。
Auto_Open 事件tar在工作簿打开时 ts 定时器,在工作簿关闭时停止,除非代码在开发过程中被开发人员中断。
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 分钟,工作表“显示”中的表格将从雅虎网站更新一次。 更复杂的数据连接请参考微软网站。
恢复损坏的工作簿
众所周知,Excel 会在意想不到的时刻崩溃,这可能与当时资源匮乏有关。 在这种情况下,源文件可以是 irrevocab严重损坏,拒绝重新打开。 在没有频繁备份的情况下,恢复的工具 Excel损坏 文件将是无价的。
作者简介:
Felix Hooker 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 rar 固定 和sql恢复软件产品。 欲了解更多信息,请访问 datanumen.com

