Kuidas lugeda andmeid veebilehtedelt Excel VBA abil

See harjutus näitab, kuidas lugeda veebisaidilt andmeid, antud juhul Yahoo.com-i ajakohaseid valuutavahetuskursse.

Eeldatakse, et lugejal on kuvatud arendaja lint ja ta tunneb VBA redaktorit. Kui ei, siis kasutage Google'i „Exceli arendaja vahekaarti” või „Exceli koodi akent”.

Eelduseks on teadmised liitkastide täitmisest ja nimede määratlemisest.

Töövihik koosneb kahest lehest:

Kasutajaliides:Kasutajaliides

Ostu ja müügi liitkastid viitavad allolevale kohalikule andmelehele.

D11 tabel kleebitakse automaatselt veebisaidilt endalt, säilitades kasutaja vormingu.Ostke ja müüge valuutasid

Selle harjutuse xlsm-i saab alla laadida siin.

Rakenduse ise koostamine.

Looge kahe liitkastiga leht. Liitkastid viitavad teise lehe lahtritele.

Liitkastid kutsuvad koodi ka veebisaidi lugemiseks, kasutades Muutma sündmus.

Valuutanimed saab kleepida allolevast loendist teisele lehele ("Valuutad"), sortimisjärjestus on isiklike eelistuste küsimus:

EEK
USD
EUR
GBP
CHF
AUD
NZD
JPY
CAD
Rootsi
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Kleepige andmed veergudesse B ja E.

Määratlege nimed ja kasutage indeksi funktsioone vastavalt joonisele:Ostke ja müüge valuutasid

Kuna nimed on määratletud kohalikul andmelehel “Valuuta”, siis peab leht “Põhi” väärtuse saamiseks lihtsalt viitama defineeritud nimedele, st “Põhi” lahtrite E10 ja G10 jaoks vastavalt =MÜÜ ja =OSTA.

Programmeerime Exceli veebi lugemiseks. Sellel on aga andmete lindil oma sisseehitatud protsess, mille eksemplari võiksite erinevate stsenaariumide koostamisel makrona salvestada. Pange tähele, et arvuti või brauseri konfiguratsioonid võivad veebilehe skripte negatiivselt mõjutada.

Kood

Sisestage moodul ja sisestage järgmine:

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

Salvestage töövihik tüübina xlsm.

Testige koodi, muutes liitkastide väärtusi, seejärel muutke kleebitud tabeli vormingud nutikamaks (neli kohta pärast koma, ruudustikud, varjutused?).

Exceli failide rikkumine

On teada, et Excel rikub mõnikord salvestamisel faile, proovides seejärel isetaasterutiini, mis minu kogemuse kohaselt sageli lihtsalt ei tööta. See võib kasutaja jaoks olla katastroofiline, kuna lähtefail (võimalik, et teie ainus koopia) hävib. Kahjustatud Exceli failid saab siiski parandada kolmandate osapoolte tööriistadega, mis säästab märkimisväärselt aega ja vaeva.

Autori sissejuhatus:

Felix Hooker on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas remont rar arhiiv ja SQL-i taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom

Kommentaarid on suletud.