Ez a gyakorlat bemutatja, hogyan lehet adatokat olvasni egy webhelyről, jelen esetben a Yahoo.com aktuális valutaárfolyamait.
Feltételezhető, hogy az olvasóban megjelenik a Fejlesztői szalag, és ismeri a VBA-szerkesztőt. Ha nem, használja a Google „Excel Developer Tab” vagy az „Excel Code Window” szolgáltatását.
Az előfeltételek közé tartozik a kombinált mezők kitöltésének és a nevek meghatározásának ismerete.
A munkafüzet két lapból áll:
A felhasználói felület:
A vétel és eladás kombinált mezők az alábbi helyi adatlapra hivatkoznak.
A D11-es táblázat automatikusan be lesz illesztve magáról a webhelyről, megtartva a felhasználói formázást.
A gyakorlat xlsm-je letölthető itt .
Az alkalmazás elkészítése saját maga.
Hozzon létre egy lapot két kombinált mezővel. A kombinált mezők egy második lap celláira hivatkoznak.
A kombinált mezők a kódot is meghívják a webhely olvasásához, a Változtat esemény.
A pénznemek nevei beilleszthetők az alábbi listából a második lapra („Pénznemek”), a rendezés egyéni preferencia kérdése:
| ZAR |
| USAdollár |
| EUR |
| angol font |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Illessze be az adatokat a B és E oszlopokba.
Adja meg a neveket és használja az Index függvényeket az ábra szerint:
Mivel a nevek a „Pénznemek” helyi adatlapon vannak meghatározva, a „Fő” lapnak csupán a definiált nevekre kell hivatkoznia, hogy megkapja az értéket, azaz =ELADÁS és =VEGYÉS a „Fő” E10 és G10 cellákhoz.
Programozni fogjuk az Excelt a weben való olvasáshoz. Ennek azonban megvan a saját beépített folyamata az Adatszalagon, amelynek egy példányát makróként rögzítheti különböző forgatókönyvek felépítése során. Vegye figyelembe, hogy a számítógép vagy a böngésző konfigurációja hátrányosan befolyásolhatja a weboldal szkriptjeit.
A kód
Helyezzen be egy modult, és írja be a következőket:
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
Mentse a munkafüzetet xlsm típusúként.
Tesztelje a kódot a kombinált mezők értékeinek megváltoztatásával, majd intelligensítse a beillesztett táblázat formátumait (négy tizedesjegy, rácsvonalak, árnyékolások?).
Az Excel fájlok sérülése
Az Excelről időnként köztudott, hogy elrontja a fájlokat a mentés során, majd megkísérli a saját ön-helyreállítási rutinját, amely tapasztalataim szerint gyakran egyszerűen nem működik. Ez katasztrofális lehet a felhasználó számára, mivel ez a forrásfájl (talán az egyetlen példánya) az, ami megsemmisült. Sérült Excel fájlok azonban harmadik féltől származó eszközökkel javítható, így jelentős időt és erőfeszítést takaríthat meg.
Szerző Bevezetés:
Felix Hooker adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás rar archív és SQL helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com
