Acest exercițiu arată cum să citiți date de pe un site web, în acest caz ratele de schimb valutare actualizate de la Yahoo.com.
Se presupune că cititorul are afișată panglica pentru dezvoltatori și este familiarizat cu Editorul VBA. Dacă nu, vă rugăm să Google „Fila Dezvoltator Excel” sau „Fereastra Cod Excel”.
Cerințele prealabile includ cunoștințele privind popularea casetelor combinate și definirea numelor.
Caietul de lucru este format din două foi:
Interfața utilizatorului:
Casetele combinate Cumpărați și vindeți fac referire la fișa cu date locale de mai jos.
Tabelul de la D11 va fi inserat automat de pe site-ul propriu-zis, păstrând formatarea utilizatorului.
Xlsm pentru acest exercițiu poate fi descărcat aici.
Construiți singuri aplicația.
Creați o foaie cu două casete combinate. Casetele combinate vor face referire la celulele de pe o a doua foaie.
Casetele combinate vor invoca, de asemenea, codul pentru a citi site-ul web, folosind Schimba eveniment.
Numele monedelor pot fi lipite în a doua foaie („Monede”) din lista de mai jos, ordinea de sortare fiind o chestiune de preferință personală:
| ZAR |
| USD |
| EURO |
| lira sterlină |
| CHF |
| AUD |
| NZD |
| JPY |
| CAD |
| SEK |
| DKK |
| NOK |
| MUR |
| HKD |
| SGD |
| ILS |
| AED |
| INR |
| CNY |
Lipiți datele în coloanele B și E.
Definiți nume și utilizați funcțiile Index conform ilustrației:
Deoarece numele au fost definite în foaia de date locală „Monede”, foaia „Main” trebuie doar să se refere la numele definite pentru a obține valoarea, adică =SELL și =BUY pentru celulele „Main” E10 și, respectiv, G10.
Vom programa Excel pentru a citi pe web. Are, totuși, propriul proces încorporat în panglica de date, o instanță a căreia ați putea dori să o înregistrați ca macrocomandă în construirea diferitelor scenarii. Rețineți că configurațiile computerului sau ale browserului pot afecta negativ scripturile paginilor web.
Codul
Introduceți un modul și introduceți următoarele:
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
Salvați registrul de lucru ca tip xlsm.
Testați codul schimbând valorile casetelor combinate, apoi îmbunătățiți formatele tabelului lipit (patru zecimale, linii de grilă, umbriri?).
Coruperea fișierelor Excel
Excel este cunoscut uneori că corupă fișierele la salvare, încercând apoi propria sa rutină de auto-recuperare, care adesea, din experiența mea, pur și simplu nu funcționează. Acest lucru poate fi dezastruos pentru utilizator, deoarece fișierul sursă (posibil singura ta copie) este distrus. Fișiere Excel deteriorate poate fi totuși reparat folosind instrumente terțe, economisind timp și efort considerabil.
Introducerea autorului:
Felix Hooker este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv repara rar Arhiva și produse software de recuperare sql. Pentru mai multe informații vizitați www.datanumen.com
