Ova vježba pokazuje kako čitati podatke s web stranice, u ovom slučaju aktualne tečajeve valuta s Yahoo.com.
Pretpostavlja se da čitatelj ima prikazanu vrpcu za razvojne programere i da je upoznat s VBA uređivačem. Ako ne, molimo proguglajte “Excel Developer Tab” ili “Excel Code Window”.
Preduvjeti uključuju poznavanje popunjavanja kombiniranih okvira i definiranja imena.
Radna bilježnica se sastoji od dva lista:
Korisničko sučelje:
Kombinirani okviri Kupi i Prodaj upućuju na lokalnu podatkovnu tablicu u nastavku.
Tablica na D11 bit će automatski zalijepljena sa same web stranice, zadržavajući korisničko oblikovanje.
Xlsm za ovu vježbu može se preuzeti ovdje.
Sami izradite aplikaciju.
Napravite list s dva kombinirana okvira. Kombinirani okviri upućivat će na ćelije na drugom listu.
Kombinirani okviri također će pozvati kod za čitanje web stranice, koristeći Promijeniti događaj.
Nazivi valuta mogu se zalijepiti u drugi list ("Valute") s donjeg popisa, a redoslijed sortiranja je stvar osobnih preferencija:
| ZAR |
| USD |
| EUR |
| GBP |
| CHF |
| AUD |
| EUR |
| JPY |
| CAD |
| Kruna |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Zalijepite podatke u stupce B i E.
Definirajte nazive i koristite funkcije indeksa prema ilustraciji:
Budući da su nazivi definirani na lokalnom podatkovnom listu "Valute", list "Glavni" mora se samo odnositi na definirana imena da bi se dobila vrijednost, tj. =PRODAJ i =KUPI za "Glavne" ćelije E10 odnosno G10.
Programirat ćemo Excel za čitanje weba. Međutim, ima vlastiti ugrađeni proces na podatkovnoj vrpci, čiju biste instancu mogli zabilježiti kao makronaredbu u izradi različitih scenarija. Imajte na umu da konfiguracije računala ili preglednika mogu nepovoljno utjecati na skripte web-stranica.
Kodeks
Umetnite modul i unesite sljedeće:
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
Spremite radnu knjigu kao tip xlsm.
Testirajte kôd mijenjanjem vrijednosti kombiniranih okvira, a zatim poboljšajte formate zalijepljene tablice (četiri decimalna mjesta, rešetke, sjenčanje?).
Oštećenje Excel datoteka
Poznato je da Excel ponekad oštećuje datoteke prilikom spremanja, nakon čega pokušava vlastitu rutinu samooporavka koja često, prema mom iskustvu, jednostavno ne radi. To može biti pogubno za korisnika, budući da je izvorna datoteka (možda vaša jedina kopija) ta koja je uništena. Oštećene Excel datoteke međutim, može se popraviti pomoću alata treće strane, čime se znatno štedi vrijeme i trud.
Uvod za autora:
Felix Hooker je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući popravak rar Arhiva i softverski proizvodi za oporavak sql-a. Za više informacija posjetite www.datanumen.com
