Kako brati podatke s spletnih spletnih strani z Excelovim VBA

Skupna raba zdaj:

Ta vaja prikazuje, kako brati podatke s spletnega mesta, v tem primeru najnovejše menjalne tečaje z Yahoo.com.

Predpostavlja se, da ima bralec prikazan trak za razvijalce in da pozna urejevalnik VBA. V nasprotnem primeru prosimo za Google »Excel Developer Tab« ali »Excel Code Window«.

Predpogoji vključujejo znanje o izpolnjevanju kombiniranih polj in določanju imen.

Delovni zvezek je sestavljen iz dveh listov:

Uporabniški vmesnik:Uporabniški vmesnik

Kombinirana polja Nakup in prodaja se sklicujeta na spodnji lokalni podatkovni list.

Tabela na D11 bo samodejno prilepljena s samega spletnega mesta in ohranila uporabniško oblikovanje.Nakup in prodaja valut

Xlsm za to vajo lahko prenesete tukaj.

Sestavite aplikacijo sami.

Ustvarite list z dvema kombiniranima poljima. Kombinirana polja se bodo sklicevala na celice na drugem listu.

Kombinirana polja bodo prav tako klicala kodo za branje spletnega mesta z uporabo Spreminjanje dogodek.

Imena valut lahko prilepite v drugi list (»Valute«) s spodnjega seznama, vrstni red razvrščanja pa je odvisen od osebnih želja:

ZAR
ameriški dolar
EUR
britanski funt
CHF
AUD
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Podatke prilepite v stolpca B in E.

Določite imena in uporabite funkcije indeksa, kot je prikazano na sliki:Nakup in prodaja valut

Ker so bila imena določena na lokalnem podatkovnem listu „Valute“, se mora list „Glavni“ zgolj sklicevati na definirana imena, da dobimo vrednost, tj. = PRODAT in = KUPI za „Glavni“ celici E10 oziroma G10.

Za branje spleta bomo programirali Excel. Ima pa vgrajen lasten postopek na podatkovnem traku, katerega primerek bi morda želeli posneti kot makro pri gradnji različnih scenarijev. Upoštevajte, da lahko konfiguracije računalnika ali brskalnika negativno vplivajo na skripte spletnih strani.

Kodeks

Vstavite modul in vnesite naslednje:

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

Shranite delovni zvezek kot tip xlsm.

Preizkusite kodo tako, da spremenite vrednosti kombiniranih polj, nato pa izboljšajte formate prilepljene tabele (štiri decimalna mesta, mrežne črte, senčenja?).

Poškodba Excelovih datotek

Excel je včasih znan po tem, da poškoduje datoteke pri shranjevanju, nato pa poskuša svojo lastno rutino za obnovitev, ki po mojih izkušnjah preprosto ne deluje. Za uporabnika je to lahko katastrofalno, saj je uničena izvorna datoteka (morda vaša edina kopija). Poškodovane datoteke Excel vendar je mogoče popraviti z uporabo orodij drugih proizvajalcev, s čimer prihranite precej časa in truda.

Uvod avtorja:

Felix Hooker je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z popravilo rar Arhiv in sql programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com

Skupna raba zdaj:

Komentarji so zaprti.