Toto cvičenie ukazuje, ako čítať údaje z webovej lokality, v tomto prípade aktuálne výmenné kurzy z Yahoo.com.
Predpokladá sa, že čitateľ má zobrazenú pásku vývojárov a je oboznámený s editorom VBA. Ak nie, navštívte Google kartu „Vývojár Excel“ alebo „Okno kódu Excel“.
Medzi predpoklady patrí znalosť vypĺňania rozbaľovacích polí a definovania názvov.
Pracovný zošit pozostáva z dvoch listov:
Používateľské rozhranie:
Rozbaľovacie polia Kúpiť a Predať odkazujú na miestny údajový list nižšie.
Tabuľka na D11 bude automaticky prilepená zo samotnej webovej stránky, pričom sa zachová používateľské formátovanie.
Súbor xlsm pre toto cvičenie si môžete stiahnuť tu.
Vytvorenie aplikácie sami.
Vytvorte hárok s dvoma kombinovanými políčkami. Rozbaľovacie polia budú odkazovať na bunky na druhom hárku.
Rozbaľovacie polia tiež vyvolajú kód na čítanie webovej stránky pomocou Zmena event.
Názvy mien je možné prilepiť na druhý hárok („Meny“) z nižšie uvedeného zoznamu, pričom poradie triedenia je záležitosťou osobných preferencií:
| ZAR |
| USD |
| EUR |
| GBP |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Vložte údaje do stĺpcov B a E.
Definujte názvy a používajte indexové funkcie podľa obrázka:
Keďže názvy boli definované v miestnom hárku s údajmi „Meny“, hárok „Hlavný“ musí na získanie hodnoty iba odkazovať na definované názvy, tj =PREDAJ a =KÚPIŤ pre bunky E10 a G10 „Hlavné“.
Budeme programovať Excel na čítanie webu. Má však svoj vlastný vstavaný proces na páse údajov, ktorého inštanciu by ste mohli chcieť zaznamenať ako makro pri vytváraní rôznych scenárov. Upozorňujeme, že konfigurácia počítača alebo prehliadača môže nepriaznivo ovplyvniť skripty webových stránok.
Kódex
Vložte modul a zadajte nasledujúce:
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
Uložte zošit ako typ xlsm.
Otestujte kód zmenou hodnôt rozbaľovacích polí a potom upravte formáty prilepenej tabuľky (štyri desatinné miesta, mriežka, tieňovanie?).
Poškodenie súborov programu Excel
O Exceli je známe, že občas poškodí súbory pri ukladaní a potom sa pokúša o vlastnú rutinu samoobnovenia, ktorá podľa mojich skúseností často jednoducho nefunguje. To môže byť pre používateľa katastrofálne, pretože je to zdrojový súbor (možno vaša jediná kópia), ktorý je zničený. Poškodené súbory programu Excel je však možné opraviť pomocou nástrojov tretích strán, čo ušetrí značný čas a námahu.
Úvod autora:
Felix Hooker je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane oprava rar archívne a softvérové produkty na obnovenie sql. Pre viac informácií navštívte www.datanumen. S
