在VBA运行时更新图表

时间:2017-07-13 09:56:39

标签: vba excel-vba for-loop charts excel

我试图直观地看到每次我将驱动变量增加1时Excel中的一组数据会发生什么。

数据在图表中可视化,增量通过整数n上的for-next循环完成。

每次增加n时,表更新中的值和图表也应该更新。除了它没有。该表更新但图表等待到例程的结尾,并仅显示其最后一个n值的位置。

我已经输入了一个等待命令,尝试了图表("图表1和#34;)。刷新等但是图表在中间步骤期间不会更新(虽然表格提供了它)。代码,因为我喜欢它。我自动计算所以不是导致问题的原因。

如何在代码运行时让图表更新为表值。这是代码抱歉。

Sub Walkthrough()

Dim n As Integer

For n = 0 To 77
    Range("L3").Value = n
    Application.ScreenUpdating = True
    ActiveChart.Refresh
    Application.Wait Now + #12:00:01 AM#
Next n

End Sub

2 个答案:

答案 0 :(得分:1)

这是如何让它可行:

Option Explicit

Sub Walkthrough()

    Dim n As Long

    Application.ScreenUpdating = True

    For n = 0 To 5
        Range("a1").Value = n
        Application.Wait Now + #12:00:01 AM#
    Next n

End Sub

确保A1是示例中的依赖范围。默认情况下,Application.ScreenUpdating在Excel中设置为True,因此您无需明确设置它。

答案 1 :(得分:0)

我通过激活 ActiveSheet 中的图表对象取得了成功。但是,我对 DoEvents 调用不是 100% 确定。程序完成后,Excel 的选择行为有点奇怪。可能是因为 ChartObject 仍然被激活。因此,我终于激活了ActiveSheet

Option Explicit

Sub Walkthrough()

        Dim myChart As ChartObject
        
        For Each myChart In ActiveSheet.ChartObjects
            myChart.Activate
            DoEvents
        Next

        ActiveSheet.Activate
        DoEvents

End Sub