Kako čitati podatke s mrežnih web-stranica s Excel VBA

Podijeli sada:

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: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.Kupujte i prodajte valute

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:Kupujte i prodajte valute

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

Podijeli sada:

Komentari su zatvoreni.