数据更改时自动刷新数据透视表
我有一个工作表Data
网站根据dynamic链接来抓取数据。 还有另一个PivotTable
透视表与基于Data
工作表的Data
PivotTable
表。
Data
工作表使用下面的macros,并在networking抓取新的更新数据之前清除单元格的内容。 这些数据每1分钟更新一次。
我有以下代码将刷新数据更新的数据透视表。 ThisWorkbook.Worksheets( “数据透视表”)。数据透视表( “PivotTable1”)。RefreshTable
由于数据大约需要20秒才能完成更新,因此数据透视表将不会刷新数据(因为首先清除单元格内容)。 所以,我得到一个错误。
Data
使用以下代码来更新数据:
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
我已经尝试更新.RefreshStyle = xlInsertDeleteCells
为.RefreshStyle = xlOverwriteCells
。 但它会覆盖单元格,直到新数据的行结束。 如果新数据(行数)小于旧数据行,则不会删除末尾的旧数据行。 我只想保留最新更新的数据。
如何根据上述条件自动刷新数据透视表?
只需设置.BackgroundQuery = False
以便您的查询将同步执行(也就是说,在执行数据透视刷新之前,将等待数据加载)。
尝试使用do循环,等待拼图完成。
Do Err.Clear On Error Resume Next Debug.Print Err.Number ThisWorkbook.Worksheets("PivotTable").PivotTables("PivotTable1").RefreshTable Debug.Print Err.Number Loop While Err.Number > 0