VBA更改数据时Excel图表不更新

时间:2018-08-21 23:27:29

标签: excel vba charts

我有一个气泡图,我试图通过让宏更新表和随后的图表来添加“运动”。我有一个单元格用作“偏移量”,数据表使用该单元格来获取数据。我有一个按钮,该按钮运行一个VBA宏,该宏每个月都会更新我的数据中的“偏移量”单元格,并在偏移量更新时更新数据表。

当我手动更改偏移单元格时,表格和图表都会更新。但是,当我单击该按钮并运行VBA宏时,仅更新表,而不更新图形。

我已经研究了可能的解决方案,包括Stack Overflow上位于此处的那些项目,并尝试了以下方法:

-DoEvents
-Applications.Calculate
-ActiveWorkbook.RefreshAll
-Chart.Refresh
-setting the Application.ScreenUpdating to false and back to true

这是我的VBA代码:

Sub Button7_Click()
Dim i As Integer

For i = 0 To 9:
    Range("P1").Value = i
    Application.Calculate
    Application.Wait DateAdd("s", 1, Now)
Next
Range("P1").Value = 0
End Sub

通过VBA更新表格时,更新图形应该不难。

2 个答案:

答案 0 :(得分:0)

根据我的测试,以下代码对我有效:

Sub Button7_Click()
Dim i As Integer
Dim sheet As Worksheet
Set sheet = Worksheets("Sheet10")

ActiveSheet.EnableCalculation = True
Application.ScreenUpdating = True
For i = 1 To 9
   'sheet.Range("A1") = CStr(i)
   sheet.Cells(i, 1) = CStr(i)
    'Application.Wait (DateAdd("s", 1, Now))
Next

sheet.UsedRange.Calculate

ActiveSheet.EnableCalculation = False
Range("A1").Value = 0
End Sub

答案 1 :(得分:0)

我遇到了这个问题。 似乎与Excel 2016有关。

Sub CommButton1_Click()
i = Cells(4, 24)
start = Cells(4, 22)
rango = Cells(4, 23) + start
Do Until start > rango
    Sleep (20)
    Cells(4, 25).Value = start
    start = start + i
    DoEvents
    DoEvents
Loop
End Sub

灵魂似乎是要添加另一个DoEvents。我已经在Excel 2016中进行了尝试,并且可以正常工作,但是时间延迟很大。