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 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.
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:
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
