数据透视图-ActiveChart.Refresh仅在调试时有效

3 debugging excel vba pivot-table

我有一本Excel工作簿,其中我从一个现有的数据透视表中为每个VBA生成一个数据透视图。此图表被创建为一个新的工作表。

到目前为止,结果是预期的。但是,当我转到生成的图表并想要在字段编辑器中更改某些内容时,会收到错误消息:

数据透视表报表已保存,没有基础源数据。选择“刷新数据”,以刷新报告。(从德语翻译)

这样做之后,我可以在字段编辑器中工作。经过长时间的紧张工作,我发现调试程序逐步执行代码时,我的代码会有不同的表现。

  • 正常执行代码时,.Refresh似乎无效。
  • 使用调试器单步执行代码时,.Refresh可以按预期工作,并且在字段编辑器中未收到错误消息。

我在Excel 2010和2013中进行了尝试。两个版本均显示相同的行为。

  Charts.Add    
  chartSheetName = dqSource & "_PIVOT_CHART"
  With ActiveChart
    .Location where:=xlLocationAsNewSheet , Name:=chartSheetName 
    .HasTitle = True
    .ChartTitle.Select
    .ChartTitle.Text = "My chart title"  
    .Refresh ' <-- This is the suspect
  End With
Run Code Online (Sandbox Code Playgroud)

brn*_*rno 5

PivotChart取决于PivotTable

我建议改为刷新该数据PivotCache透视表:

With myPivotTable
    .PivotCache.Refresh
    .PivotCache.MissingItemsLimit = xlMissingItemsNone
End With
Run Code Online (Sandbox Code Playgroud)