Dieser Artikel zeigt, wie Sie ein Arbeitsblatt oder Diagramm in regelmäßigen Abständen aktualisieren. In dieser Übung wird ein Timer erstellt, der das Arbeitsblatt jede Minute aktualisiert und Änderungen in den Quelldaten widerspiegelt.
In diesem Artikel wird davon ausgegangen, dass der Reader das Developer Ribbon angezeigt hat und mit dem VBA-Editor vertraut ist. Wenn nicht, klicken Sie auf Google "Excel Developer Tab" oder "Excel Code Window".
Ein Beispiel für die in dieser Übung verwendete Arbeitsmappe finden Sie hier.
Dynamische Berichte können verwendet werden:
- Das Proprie lesentary Datenbank, die mit Ihrem Unternehmenstelefonsystem geliefert wird, um Anrufe zu analysieren.
- Generieren Sie alle 15 Minuten eine Zufallszahl für Preis- oder Gewinnspielzwecke.
- Senden Sie E-Mails automatisch aus Ihrer lokalen Datenbank, wenn bestimmte Ebenen erreicht sind. (Hier entscheidet der Timer basierend auf den erreichten Levels, ob der Prozess ausgelöst wird oder nicht).
oder die, die wir verwenden werden:
- Zeigen Sie den aktuellen USD / EUR-Wechselkurs aus dem Internet an.
Die Daten werden aus dem extrahiert Yahoo Finance-Website jede Minute. Nach erfolgreichem Test sollte ein längeres Verarbeitungsintervall ersetzt werden.
Die Schnittstelle
Öffnen Sie eine neue Arbeitsmappe.
Nennen Sie das erste Blatt "Anzeige". Da die Tabellen D8 bis E11 aus dem Web ausgefüllt werden, müssen keine Werte oder Zeilenüberschriften eingegeben werden. Der Rest ist optional.
Der Code des Chamäleons
Öffnen Sie das VBA-Codefenster und fügen Sie ein Modul ein. Kopieren Sie den folgenden Code in das Modul.
Das Auto_Open-Ereignis starts der Timer beim Öffnen der Arbeitsmappe und stoppt beim Schließen der Arbeitsmappe, es sei denn, der Code wird vom Entwickler während der Entwicklung unterbrochen.
Sub Auto_Open () AlertTime = Now + TimeValue ("00:01:00") 'Intervall in Minuten Application.OnTime AlertTime, "Ticker"' ruft Sub Ticker auf, unter End Sub Sub Ticker () Dim currBuy As String Dim currSell As String Bereich ("D8: F11"). ClearContents bereitet das Ziel für die Webdaten vor currBuy = "USD" currSell = "EUR" Mit ActiveSheet.QueryTables.Add (Verbindung: = _ "URL; http: //finance.yahoo. com / q? s = "& currBuy & currSell &" = X ", Ziel: = Bereich (" $ D $ 8 ")) .Name =" q? s = "& currSell & currBuy &" = X ".FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True. Registerkarte WebTables = "" le0 "" ".WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh Backpoint eine Minute Application.OnTime AlertTime, "Ticker" End Sub
Das Ergebnis
Alle n Minuten wird die Tabelle im Blatt „Anzeige“ von der Yahoo-Website aktualisiert. Weitere Informationen zu komplexeren Datenverbindungen finden Sie auf der Microsoft-Website.
Wiederherstellen beschädigter Arbeitsmappen
Es ist bekannt, dass Excel in unerwarteten Momenten abstürzt, was wahrscheinlich auf einen Mangel an Ressourcen zurückzuführen ist. In solchen Fällen kann die Quelldatei irrevo seincabbeschädigt und weigern sich, wieder zu öffnen. In Ermangelung häufiger Backups ein Tool zur Wiederherstellung beschädigtes Excel Dateien wären von unschätzbarem Wert.
Einführung des Autors:
Felix Hooker ist ein Datenrettungsexperte in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich rar fixieren und SQL Recovery-Softwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX