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:
Ostu ja müügi liitkastid viitavad allolevale kohalikule andmelehele.
D11 tabel kleebitakse automaatselt veebisaidilt endalt, säilitades kasutaja vormingu.
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:
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
