PivotChart - ActiveChart.Refresh仅在调试时有效

问题描述 投票:3回答:3

我有一个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
excel vba debugging pivot-table
3个回答
5
投票

PivotChart取决于PivotTable

我建议刷新那个pivottable的PivotCache

With myPivotTable
    .PivotCache.Refresh
    .PivotCache.MissingItemsLimit = xlMissingItemsNone
End With

0
投票

你可以试试这行代码:

Do Events

在此之后,在实时运行中启动代码。


0
投票

您的问题是由于您需要链接工作表中的基础数据引起的。在数据透视表的单元格中定位,转到数据透视表选项=>数据选项卡=>选中“使用文件保存源数据”选项。此选项使excel使用工作表保存pivotcache。

我希望这对你有所帮助。来自哥伦比亚的问候。

© www.soinside.com 2019 - 2024. All rights reserved.