本练习演示如何从网站读取数据,在本例中为 Yahoo.com 的最新货币汇率。
假定读者已显示 Developer 功能区并且熟悉 VBA 编辑器。 如果没有,请谷歌“Excel Developer Tab”或“Excel Code Window”。
先决条件包括填充组合框和定义名称的知识.
工作簿由两张纸组成:
用户界面:
买入和卖出组合框参考下面的本地数据表。
D11 的表格将从网站本身自动粘贴,保留用户格式。
可以下载本练习的 xlsm 开始.
自己构建应用程序。
创建一个包含两个组合框的工作表。 组合框将引用第二张纸上的单元格。
组合框还将调用代码来阅读网站,使用 更改 事件。
货币名称可以从下面的列表中粘贴到第二张表(“货币”)中,排序顺序是个人喜好的问题:
| ZAR |
| 美元 |
| 欧元 |
| 英镑 |
| CHF |
| 澳元 |
| NZD |
| JPY |
| CAD |
| 瑞典克朗 |
| DKK |
| NOK |
| MUR |
| 港币 |
| SGD |
| ILS |
| AED |
| INR |
| 中国 |
将数据粘贴到列 B 和 E。
按照图示定义名称并使用索引函数:
由于名称已在本地数据表“货币”上定义,表“Main”只需引用定义的名称即可获取值,即分别为“Main”单元格 E10 和 G10 的 =SELL 和 =BUY。
我们将编写 Excel 程序来阅读网页。 但是,它在数据功能区上确实有自己的内置过程,您可能希望在构建不同场景时将其实例记录为宏。 请注意,计算机或浏览器配置可能会对网页脚本产生不利影响。
守则
插入一个模块,然后输入以下内容:
Option Explicit
Sub Ticker()
Dim currBuy As String
Dim currSell As String
Range("D11:F14").ClearContents 'prepare the ground for the web data
currBuy = Range("BUY") 'get variable values from Defined Names previously set up
currSell = Range("SELL")
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://finance.yahoo.com/q?s=" & currBuy & currSell & "=X", Destination:=Range("$D$11"))
.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
End sub
Sub DropDown2_Change() 'This event will call the routine above. Object name might differ.
Call Ticker
End Sub
Sub DropDown1_Change()
Call Ticker
End Sub
将工作簿另存为 xlsm 类型.
通过更改组合框的值来测试代码,然后智能化粘贴表格的格式(小数点后四位、网格线、阴影?)。
Excel 文件损坏
众所周知,Excel 有时会在保存时损坏文件,然后尝试自己的自我恢复例程,根据我的经验,这通常是行不通的。 这对用户来说可能是灾难性的,因为它是被破坏的源文件(可能是您唯一的副本)。 损坏的 Excel 文件 但是可以使用第三方工具进行修复,从而节省大量时间和精力。
作者简介:
Felix Hooker 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 修复 rar 档案 和sql恢复软件产品。 欲了解更多信息,请访问 datanumen.com
