Ich habe ein Arbeitsblatt Data
, die Web eine Daten auf einer dynamischen Verknüpfung kratzt. Es gibt eine weitere PivotTable
mit Pivot-Tabellen basierend auf dem Data
Arbeitsblatt.Auto-Aktualisierung Pivot-Tabellen bei Datenänderung
Data
Arbeitsblatt verwendet das folgende Makro und löscht den Inhalt der Zellen vor dem Scraping neuer aktualisierter Daten. Diese Daten werden alle 1 Minute aktualisiert.
Ich habe den folgenden Code, der die Pivot-Tabellen bei Datenaktualisierung aktualisieren wird. ThisWorkbook.Worksheets („Pivot-Tabelle“). Pivot-Tabellen („PivotTable1“). Refresh
Da die Daten etwa 20 Sekunden dauert die Aktualisierung abgeschlossen ist, gibt es keine Daten (wie die Zellinhalte gelöscht werden zuerst) für den Drehtisch erneuern. Also, ich bekomme einen Fehler.
Data
verwendet den folgenden Code zu aktualisieren Daten:
With ThisWorkbook.Worksheets("Data").QueryTables.Add(Connection:= _
"<URL redacted>", Destination:=ThisWorkbook.Worksheets("Data").Range("$A$1"))
.Name = "DataPull"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=True ' .Delete
End With
Ich habe versucht, die .RefreshStyle = xlInsertDeleteCells
-.RefreshStyle = xlOverwriteCells
aktualisieren. Aber es überschreibt die Zellen bis zum Ende der Zeilen der neuen Daten. Wenn neue Daten (Anzahl der Zeilen) kleiner als die Zeilen der alten Daten sind, werden die alten Datenzeilen am Ende nicht gelöscht. Ich möchte nur die Daten vom letzten Update behalten.
Wie aktualisiere ich automatisch die Pivot-Tabellen basierend auf den oben genannten Bedingungen?
Vielen Dank. Ich aktualisierte .BackQuery = True zu False und auch .Refresh BackgroundQuery: = True zu False –