问题:在for循环的每次迭代
之后刷新ChartObject中的Series的图形表示Ex. y=m*Cos(x)
y - Values
m - parameter
我从带有参数的公式计算了一些数据。我想想象一下XYgraph上参数变化的影响。我想在for循环中执行它(添加Sleep
确实有时间看到结果)。
数据和公式在Excel SpreadSheet中。参数的更新脚本在VBA模块中。更新适用于电子表格中的值,但不会影响图表。
WorkBook.RefreshAll
不起作用;
Chart.Refresh
不起作用
最后一次迭代后的图表更新。
有什么想法吗?
答案 0 :(得分:1)
在每次迭代步骤后向代码中添加DoEvents
。它对我有用。
答案 1 :(得分:0)
在Excel for Office 365中,我仅以这种方式进行XYChart实时更新(XYChart在每个For
循环迭代回合期间/结束时进行更新)。我根本无法Sleep()
工作。不幸的是Application.Wait
的滴答分辨率为1秒,因此动画可能相对较慢。另外,<chartObject>.Chart.Refresh
并没有达到预期的效果(在For
循环中自动更新)。
注意:根据您的情况,以下某些代码可能不是必需的(默认情况下,至少Application.ScreenUpdating
应该为ON)。
Application.ScreenUpdating = True
ActiveSheet.ChartObjects(1).Activate
...
For i = 1 To 10
'Chart source data cells manipulation/update and other chart related routines here.'
ActiveSheet.ChartObjects(1).Activate
Application.Wait (Now + TimeValue("00:00:01"))
DoEvents
Next i