如何使用 Excel VBA 从在线网页读取数据

立即分享:

本练习演示如何从网站读取数据,在本例中为 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

立即分享:

评论被关闭。