Kā lasīt datus no tiešsaistes tīmekļa lapām, izmantojot programmu Excel VBA

Kopīgot tūlīt:

Šis vingrinājums parāda, kā nolasīt datus no vietnes, šajā gadījumā jaunākos valūtas maiņas kursus no Yahoo.com.

Tiek pieņemts, ka lasītājam ir parādīta izstrādātāja lente un viņš ir pazīstams ar VBA redaktoru. Ja nē, lūdzu, Google “Excel izstrādātāja cilne” vai “Excel koda logs”.

Priekšnosacījumi ietver zināšanas par kombinēto lodziņu aizpildīšanu un vārdu definēšanu.

Darba burtnīca sastāv no divām lapām:

Lietotāja saskarne:Lietotāja saskarne

Kombinētās lodziņos Pirkt un Pārdot atsauces uz vietējo datu lapu zemāk.

D11 tabula tiks automātiski ielīmēta no pašas vietnes, saglabājot lietotāja formatējumu.Pirkt un pārdot valūtas

Šī vingrinājuma xlsm var lejupielādēt šeit.

Pielietojiet lietojumprogrammu pats.

Izveidojiet lapu ar divām kombinētām lodziņām. Kombinētās rūtiņas atsauces uz šūnām otrajā lapā.

Kombinētās rūtiņas arī izsauks kodu, lai lasītu vietni, izmantojot Mainīt notikums.

Valūtu nosaukumus var ielīmēt otrajā lapā (“Valūtas”) no zemāk redzamā saraksta, kārtošanas kārtību izvēloties personīgi:

ZAR
USD
EIRO
GBP
CHF
AUD
NZD
JPY
CAD
LVL
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Ielīmējiet datus B un E kolonnās.

Definējiet nosaukumus un izmantojiet rādītāja funkcijas atbilstoši attēlam:Pirkt un pārdot valūtas

Tā kā nosaukumi ir definēti vietējā datu lapā “Valūtas”, lapai “Main” ir tikai jāatsaucas uz definētajiem nosaukumiem, lai iegūtu vērtību, ti, = SELL un = PIRKT attiecīgi “Main” šūnām E10 un G10.

Programmēsim programmu Excel, lai lasītu tīmekli. Tomēr datu lentē tam ir savs iebūvētais process, kuru, iespējams, vēlaties ierakstīt kā makro, veidojot dažādus scenārijus. Ņemiet vērā, ka datora vai pārlūka konfigurācijas var nelabvēlīgi ietekmēt tīmekļa lapu skriptus.

Kodekss

Ievietojiet moduli un ievadiet šo:

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

Saglabājiet darbgrāmatu kā xlsm.

Pārbaudiet kodu, mainot kombinēto lodziņu vērtības, pēc tam uzlabojiet ielīmētās tabulas formātus (četras zīmes aiz komata, režģlīnijas, ēnojumi?).

Excel failu bojājums

Reizēm ir zināms, ka programma Excel ir bojāta, saglabājot failus, pēc tam mēģinot izveidot savu pašatjaunošanās rutīnu, kas, pēc manas pieredzes, bieži vien vienkārši nedarbojas. Lietotājam tas var būt katastrofāls, jo tiek iznīcināts avota fails (iespējams, jūsu vienīgā kopija). Bojāti Excel faili tomēr to var salabot, izmantojot trešo pušu rīkus, ietaupot ievērojamu laiku un pūles.

Autora ievads:

Fēlikss Hukers ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp remonts rar arhīvs un SQL atkopšanas programmatūras produkti. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar

Kopīgot tūlīt:

Komentāri ir slēgti.