Jak číst data z online webových stránek pomocí aplikace Excel VBA

Sdílej nyní:

Toto cvičení ukazuje, jak číst data z webové stránky, v tomto případě aktuální směnné kurzy z Yahoo.com.

Předpokládá se, že čtenář má zobrazenou pásku Developer a je obeznámen s editorem VBA. Pokud ne, prosím Google „Excel Developer tab“ nebo „Excel Code Window“.

Předpoklady zahrnují znalost naplňování combo-boxů a definování názvů.

Sešit se skládá ze dvou listů:

Uživatelské rozhraní:Uživatelské rozhraní

Rozbalovací pole Nákup a prodej odkazují na místní datový list níže.

Tabulka na D11 bude automaticky vložena ze samotného webu, přičemž se zachová uživatelské formátování.Nakupujte a prodávejte měny

Soubor xlsm pro toto cvičení lze stáhnout zde.

Vytvoření aplikace sami.

Vytvořte list se dvěma combo boxy. Pole se seznamem budou odkazovat na buňky na druhém listu.

Rozbalovací seznamy také vyvolají kód pro čtení webu pomocí Přeměna událost.

Názvy měn lze vložit do druhého listu („Měny“) ze seznamu níže, pořadí řazení je věcí osobních preferencí:

ZAR
USD
EUR
GBP
CHF
CZK
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Vložte data do sloupců B a E.

Definujte jména a používejte funkce indexu podle obrázku:Nakupujte a prodávejte měny

Protože názvy byly definovány v místním datovém listu „Měny“, list „Hlavní“ musí pouze odkazovat na definované názvy, aby získal hodnotu, tj. =SELL a =BUY pro buňky „Hlavní“ E10 a G10 v tomto pořadí.

Budeme programovat Excel pro čtení webu. Má však svůj vlastní vestavěný proces na pásu dat, jehož instanci byste mohli chtít zaznamenat jako makro při vytváření různých scénářů. Pamatujte, že konfigurace počítače nebo prohlížeče může nepříznivě ovlivnit skripty webových stránek.

Kodex

Vložte modul a zadejte následující:

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

Uložte sešit jako typ xlsm.

Otestujte kód změnou hodnot polí se seznamem a poté upravte formáty vložené tabulky (čtyři desetinná místa, mřížka, stínování?).

Poškození souborů aplikace Excel

Je známo, že Excel občas poškozuje soubory při ukládání a poté se pokouší o vlastní rutinu samoobnovy, která podle mých zkušeností často prostě nefunguje. To může být pro uživatele katastrofální, protože je zničen zdrojový soubor (možná vaše jediná kopie). Poškozené soubory Excel lze však opravit pomocí nástrojů třetích stran, což ušetří značný čas a úsilí.

Úvod autora:

Felix Hooker je odborník na obnovu dat v oboru DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně opravit rar archiv a SQL softwarové produkty pro obnovu. Pro více informací navštivte www.datanumen.com

Sdílej nyní:

Komentáře jsou uzavřeny.