Excel 2013 vba在For循环每次迭代后刷新图表内容
问题:在for循环的每次迭代后,在ChartObject中刷新序列的图形表示Excel 2013 vba在For循环每次迭代后刷新图表内容,excel,vba,loops,iteration,refresh,Excel,Vba,Loops,Iteration,Refresh,问题:在for循环的每次迭代后,在ChartObject中刷新序列的图形表示 Ex. y=m*Cos(x) y - Values m - parameter 我有一些数据是从带参数的公式中计算出来的。我想想象一下参数的变化对XYgraph有什么影响。我想在for循环中完成它(添加了Sleep确实有时间查看结果)。 数据和公式在Excel电子表格中。参数的更新脚本位于VBA模块中。更新对电子表格中的值有效,但不影响图形 工作簿。RefreshAll不起作用; 图表。刷新无效 图表在上次迭代后更
Ex. y=m*Cos(x)
y - Values
m - parameter
我有一些数据是从带参数的公式中计算出来的。我想想象一下参数的变化对XYgraph有什么影响。我想在for循环中完成它(添加了Sleep
确实有时间查看结果)。
数据和公式在Excel电子表格中。参数的更新脚本位于VBA模块中。更新对电子表格中的值有效,但不影响图形
工作簿。RefreshAll
不起作用;
图表。刷新
无效
图表在上次迭代后更新
有什么想法吗?在每个迭代步骤后,在代码中添加一个
DoEvents
。它对我很有用。在Excel for Office 365中,我得到的XYChart实时更新仅以这种方式工作(XYChart将在每个循环迭代回合的期间/结束时更新)。我根本无法让Sleep()
工作。不幸的是,Application.Wait
tick分辨率为1秒,因此动画可能相对较慢。另外,.Chart.Refresh
也没有达到预期效果(用于for
循环期间的自动更新)
注意:以下一些代码在您的情况下可能不是必需的(至少应用程序。屏幕更新默认情况下应处于打开状态)
Thx-Vacip。工作起来很有魅力!他工作得很好。DoEvents+睡眠已停止。您可以尝试应用程序。等待而不是睡眠
。缺点是最短时间为1秒。好处是它不依赖于CPU时钟(sleep
is)。
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