Tämä harjoitus osoittaa, kuinka voit lukea tietoja verkkosivustolta, tässä tapauksessa ajantasaiset valuuttakurssit Yahoo.com-sivustolta.
Oletetaan, että lukijalla on kehittäjänauha ja hän tuntee VBA-editorin. Jos ei, ota Googlen “Excel Developer -välilehti” tai “Excel Code Window”.
Edellytykset sisältävät tiedon yhdistelmälaatikoiden täyttämisestä ja nimien määrittelemisestä.
Työkirja koostuu kahdesta arkista:
Käyttöliittymä:
Osta ja myy -yhdistelmäruudut viittaavat alla olevaan paikalliseen tietosivuun.
D11: n taulukko liitetään automaattisesti verkkosivustolta säilyttäen käyttäjän muotoilu.
Tämän harjoituksen xlsm voidaan ladata täältä.
Rakenna sovellus itse.
Luo taulukko, jossa on kaksi yhdistelmäruutua. Yhdistelmäruudut viittaavat toisen arkin soluihin.
Yhdistelmäruudut kutsuvat myös koodin lukemaan verkkosivustoa käyttämällä Muutos tapahtuma.
Valuutanimet voidaan liittää alla olevasta luettelosta toiseen taulukkoon ("Valuutat"), lajittelujärjestys on henkilökohtaisten mieltymysten mukainen:
| ZAR |
| USD |
| EUR |
| GBP |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Liitä tiedot sarakkeisiin B ja E.
Määritä nimet ja käytä hakemistotoimintoja kuvan mukaisesti:
Koska nimet on määritelty paikallisessa tietolomakkeessa "Valuutat", taulukon "Main" on vain viitattava määriteltyihin nimiin arvon saamiseksi, ts. = MYY ja = OSTA "Pää" -soluille E10 ja G10.
Ohjelmoimme Excelin lukemaan verkkoa. Sillä on kuitenkin oma sisäänrakennettu prosessi Data-valintanauhalle, jonka haluat esimerkiksi tallentaa makrona rakentaessasi erilaisia skenaarioita. Huomaa, että tietokoneen tai selaimen kokoonpanot voivat vaikuttaa haitallisesti verkkosivujen komentosarjoihin.
Koodi
Aseta moduuli ja kirjoita seuraava:
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
Tallenna työkirja nimellä xlsm.
Testaa koodi muuttamalla yhdistelmäruutujen arvoja ja korosta sitten liitetyn taulukon muodot (neljä desimaalia, ruudukot, varjostukset?).
Excel-tiedostojen vioittuminen
Excelin tiedetään toisinaan vioittavan tiedostoja tallennuksen yhteydessä, minkä jälkeen se yrittää omaa palautumisrutiiniaan, joka kokemukseni mukaan ei yksinkertaisesti toimi. Tämä voi olla katastrofaalista käyttäjälle, koska lähdetiedosto (mahdollisesti ainoa kopio) tuhoutuu. Vaurioituneet Excel-tiedostot voidaan kuitenkin korjata kolmannen osapuolen työkaluilla, mikä säästää huomattavasti aikaa ja vaivaa.
Tekijän esittely:
Felix Hooker on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien korjaus rar arkisto ja sql-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com
