Lesen von Daten von Online-Webseiten mit Excel VBA

Jetzt teilen:

Diese Übung zeigt, wie Sie Daten von einer Website lesen, in diesem Fall aktuelle Wechselkurse von Yahoo.com.

Es wird davon ausgegangen, dass dem Leser das Entwicklerband angezeigt wird und er mit dem VBA-Editor vertraut ist. Wenn nicht, klicken Sie auf Google "Excel Developer Tab" oder "Excel Code Window".

Zu den Voraussetzungen gehört die Kenntnis des Auffüllens von Kombinationsfeldern und des Definierens von Namen.

Die Arbeitsmappe besteht aus zwei Blättern:

Die Benutzeroberfläche:Die Benutzeroberfläche

Die Kombinationsfelder Kaufen und Verkaufen verweisen auf das lokale Datenblatt unten.

Die Tabelle in D11 wird automatisch von der Website selbst eingefügt, wobei die Benutzerformatierung beibehalten wird.Währungen kaufen und verkaufen

Das XLSM für diese Übung kann heruntergeladen werden werden auf dieser Seite erläutert.

Erstellen Sie die Anwendung selbst.

Erstellen Sie ein Blatt mit zwei Kombinationsfeldern. Die Kombinationsfelder verweisen auf Zellen auf einem zweiten Blatt.

Die Kombinationsfelder rufen auch den Code zum Lesen der Website unter Verwendung von auf Ändern Ereignis.

Währungsnamen können aus der folgenden Liste in das zweite Blatt („Währungen“) eingefügt werden, wobei die Sortierreihenfolge eine Frage der persönlichen Präferenz ist:

ZAR
USD
EUR
GBP (Faster Payments Service, Advcash, ZEN)
CHF
AUD
NZD
JPY
CAD
SEK
DKK
NOK
MUR
HKD
SGD
ILS
AED
INR
CNY

Fügen Sie die Daten in die Spalten B und E ein.

Definieren Sie Namen und verwenden Sie Indexfunktionen wie in der Abbildung dargestellt:Währungen kaufen und verkaufen

Da Namen im lokalen Datenblatt „Währungen“ definiert wurden, muss sich das Blatt „Main“ lediglich auf die definierten Namen beziehen, um den Wert zu erhalten, dh = SELL und = BUY für die „Main“ -Zellen E10 bzw. G10.

Wir werden Excel programmieren, um das Web zu lesen. Es verfügt jedoch über einen eigenen integrierten Prozess in der Datenleiste, von dem Sie möglicherweise eine Instanz als Makro beim Erstellen verschiedener Szenarien aufzeichnen möchten. Beachten Sie, dass Computer- oder Browserkonfigurationen die Webseiten-Skripte nachteilig beeinflussen können.

Der Code des Chamäleons

Fügen Sie ein Modul ein und geben Sie Folgendes ein:

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

Speichern Sie die Arbeitsmappe als Typ xlsm.

Testen Sie den Code, indem Sie die Werte der Kombinationsfelder ändern und dann die Formate der eingefügten Tabelle (vier Dezimalstellen, Gitterlinien, Schattierungen?) Verbessern.

Beschädigung von Excel-Dateien

Es ist manchmal bekannt, dass Excel Dateien beim Speichern beschädigt und danach eine eigene Selbstwiederherstellungsroutine versucht, die meiner Erfahrung nach oft einfach nicht funktioniert. Dies kann für den Benutzer katastrophal sein, da die Quelldatei (möglicherweise Ihre einzige Kopie) zerstört wird. Beschädigte Excel-Dateien kann jedoch mit Tools von Drittanbietern repariert werden, was viel Zeit und Mühe spart.

Einführung des Autors:

Felix Hooker ist ein Datenrettungsexperte in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Reparatur- rar Archiv und SQL Recovery-Softwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.