Kaip skaityti duomenis iš internetinių tinklalapių naudojant „Excel VBA“.

Bendrinti dabar:

Šis pratimas parodo, kaip skaityti duomenis iš svetainės, šiuo atveju naujausius valiutos kursus iš Yahoo.com.

Daroma prielaida, kad skaitytojas turi rodomą kūrėjo juostelę ir yra susipažinęs su VBA redaktoriumi. Jei ne, naudokite Google „Excel Developer Tab“ arba „Excel Code Window“.

Būtinos sąlygos apima žinias apie kombinuotųjų langelių užpildymą ir pavadinimų apibrėžimą.

Darbo knyga susideda iš dviejų lapų:

Vartotojo sąsaja:Vartotojo sąsaja

Pirkimo ir pardavimo kombinuotieji langeliai nurodo toliau pateiktą vietinį duomenų lapą.

D11 lentelė bus automatiškai įklijuota iš pačios svetainės, išlaikant vartotojo formatavimą.Pirkti ir parduoti valiutas

Šio pratimo xlsm failą galima atsisiųsti čia.

Programos kūrimas pats.

Sukurkite lapą su dviem sudėtiniais langeliais. Sudėtieji langeliai nurodys antrojo lapo langelius.

Kombinuoti langeliai taip pat iškvies kodą, kad galėtų skaityti svetainę, naudodami pokytis Renginys.

Valiutų pavadinimus galima įklijuoti į antrą lapą („Valiutos“) iš toliau pateikto sąrašo, rūšiavimo tvarka priklauso nuo asmeninių pageidavimų:

LTL
USD
EUR
GBP
CHF
LTL
NZD
JPY
ESD
LTL
DKK
NOK
MUR
HKD
SGD
ILS
AED
TNS
CNY

Įklijuokite duomenis į B ir E stulpelius.

Apibrėžkite pavadinimus ir naudokite rodyklės funkcijas, kaip parodyta iliustracijoje:Pirkti ir parduoti valiutas

Kadangi pavadinimai buvo apibrėžti vietiniame duomenų lape „Valiutos“, lape „Pagrindinis“ tereikia nurodyti apibrėžtus pavadinimus, kad būtų gauta reikšmė, ty atitinkamai = PARDUODA ir = PIRKTI „Pagrindiniai“ langeliai E10 ir G10.

Programuosime Excel skaityti žiniatinklį. Tačiau duomenų juostelėje yra įtaisytas procesas, kurio atvejį galbūt norėsite įrašyti kaip makrokomandą kurdami skirtingus scenarijus. Atminkite, kad kompiuterio ar naršyklės konfigūracijos gali neigiamai paveikti tinklalapio scenarijus.

Kodeksas

Įdėkite modulį ir įveskite:

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

Išsaugokite darbaknygę kaip xlsm tipą.

Išbandykite kodą pakeisdami kombinuotųjų langelių reikšmes, tada išmanykite įklijuotos lentelės formatus (keturios skaitmenys po kablelio, tinklelio linijos, šešėliai?).

„Excel“ failų sugadinimas

Yra žinoma, kad „Excel“ kartais sugadina failus išsaugodama, o vėliau bando savarankiškai atkurti, kuri, mano patirtimi, dažnai tiesiog neveikia. Tai gali būti pražūtinga vartotojui, nes sunaikinamas šaltinio failas (galbūt vienintelė jūsų kopija). Sugadinti Excel failai tačiau galima taisyti naudojant trečiųjų šalių įrankius, sutaupant daug laiko ir pastangų.

Autoriaus įvadas:

Felixas Hookeris yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant remontas rar archyvas ir sql atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com

Bendrinti dabar:

Komentarai yra uždaryti.