图表不会在Excel中更新(2007)

sam*_*mJL 19 excel vba excel-2007 excel-vba

我有一个带有图表(Clustered Column)的Excel文档(2007),它从包含计算值的单元格中获取其Data Series

计算值不会直接更改,而只会因工作表中其他单元格的更改而更改

当我更改工作表中的其他单元格时,将重新计算数据系列单元格并显示新值 - 但基于此数据系列的图表拒绝自动更新

我可以通过保存/关闭或切换其中一个设置(例如反转x/y轴然后将其放回)或重新选择数据系列来更新图表

我在网上找到的每个解决方案都不起作用

  • 是的我将计算设置为自动
  • 除了图表外,Ctrl + Alt + F9更新一切正常
  • 我已经多次重新创建了图表,并且在不同的计算机上
  • 我尝试过VBA脚本,如:

    Application.Calculate
    Application.CalculateFull
    Application.CalculateFullRebuild
    ActiveWorkbook.RefreshAll
    DoEvents

这些都不会更新或刷新图表

我注意到,如果我键入我的数据系列,实际数字而不是计算,它将更新图表 - 就像Excel不想识别计算中的更改一样

有没有人以前经历过这个或知道我可以做些什么来解决这个问题?谢谢

小智 13

这是我发现不断更新图表的唯一方法.它减少了问题的根本原因(我假设):系列数据被缓存在图表中.通过强制图表重新评估系列,我们正在清除缓存.

' Force the charts to update
Set sht = ActiveSheet
For Each co In sht.ChartObjects
    co.Activate
    For Each sc In ActiveChart.SeriesCollection
        sc.Select
        temp = sc.Formula
        sc.Formula = "=SERIES(,,1,1)"
        sc.Formula = temp
    Next sc
Next co
Run Code Online (Sandbox Code Playgroud)


tpa*_*ale 4

我遇到了同样的问题 - 不知道为什么,当它发生时,我强制更新图表的唯一方法是更改​​图表定义本身中的某些内容,这可以通过 VBA 轻松完成,如下所示:

Dim C As ChartObject: Set C = Me.ChartObjects("chart name")
C.Chart.ChartTitle.Text = C.Chart.ChartTitle.Text + "1"
Run Code Online (Sandbox Code Playgroud)

可能有一个更好的答案可以触及问题的根源 - 但我认为这可能会有所帮助。在工作表上工作时,我会在图表的一部分(或整个图表)上快速按 Ctrl-X、Ctrl-V 来强制更新图表。

  • 请注意使用“+”进行字符串连接!应该使用“&”。 (7认同)