如何使用 Excel VBA 從在線網頁中讀取數據

立即分享:

本練習展示瞭如何從網站讀取數據,在本例中是來自 Yahoo.com 的最新貨幣匯率。

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

先決條件包括填充組合框和定義名稱的知識.

工作簿由兩張紙組成:

用戶界面:用戶界面

Buy 和 Sell 組合框參考下面的本地數據表。

D11 中的表格將從網站本身自動粘貼,保留用戶格式。買賣貨幣

可以下載本練習的 xlsm 此處.

自己構建應用程序。

創建一個帶有兩個組合框的工作表。 組合框將引用第二張紙上的單元格。

組合框還將調用代碼來閱讀網站,使用 更改 事件。

貨幣名稱可以粘貼到下面列表中的第二張表(“貨幣”)中,排序順序取決於個人喜好:

ZAR
USD
EUR
GBP
瑞士法郎
AUD
NZD
日圓
CAD
瑞典克朗
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

將數據粘貼到 B 列和 E 列中。

按照圖示定義名稱並使用索引函數:買賣貨幣

由於名稱已在本地數據表“Currencies”上定義,表“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

立即分享:

評論被關閉。