Š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:
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ą.
Š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:
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
