Excel 2013 vba For 循环每次迭代后刷新图表内容
Excel 2013 vba refresh chart content after each iteration of For Loop
问题:在 for 循环的每次迭代后刷新 ChartObject 中 Series 的图形表示
Ex. y=m*Cos(x)
y - Values
m - parameter
我有一些数据是从带有参数的公式中计算出来的。我想可视化 XY 图上参数的变化有什么影响。我想在 for 循环中执行它(添加 Sleep
确实有一些时间可以看到结果)。
数据和公式在 Excel SpreadSheet 中。参数更新脚本在VBA模块中。更新适用于电子表格中的值,但不影响图形。
WorkBook.RefreshAll
不起作用;
Chart.Refresh
无效
图表在上次迭代后更新。
有什么想法吗?
在每个迭代步骤后将 DoEvents
添加到您的代码中。对我有用。
在 Office 365 的 Excel 中,我只能通过这种方式进行 XYChart 实时更新(XYChart 将在 during/in 每个 For
循环迭代结束时更新)。我根本无法让 Sleep()
工作。不幸的是Application.Wait
tick分辨率是1秒,所以动画可能比较慢。 <chartObject>.Chart.Refresh
也没有达到预期的效果(在 For
循环期间自动更新)。
注意:您的情况可能不需要下面的某些代码(至少 Application.ScreenUpdating
应该默认打开)。
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
问题:在 for 循环的每次迭代后刷新 ChartObject 中 Series 的图形表示
Ex. y=m*Cos(x)
y - Values
m - parameter
我有一些数据是从带有参数的公式中计算出来的。我想可视化 XY 图上参数的变化有什么影响。我想在 for 循环中执行它(添加 Sleep
确实有一些时间可以看到结果)。
数据和公式在 Excel SpreadSheet 中。参数更新脚本在VBA模块中。更新适用于电子表格中的值,但不影响图形。
WorkBook.RefreshAll
不起作用;
Chart.Refresh
无效
图表在上次迭代后更新。
有什么想法吗?
在每个迭代步骤后将 DoEvents
添加到您的代码中。对我有用。
在 Office 365 的 Excel 中,我只能通过这种方式进行 XYChart 实时更新(XYChart 将在 during/in 每个 For
循环迭代结束时更新)。我根本无法让 Sleep()
工作。不幸的是Application.Wait
tick分辨率是1秒,所以动画可能比较慢。 <chartObject>.Chart.Refresh
也没有达到预期的效果(在 For
循环期间自动更新)。
注意:您的情况可能不需要下面的某些代码(至少 Application.ScreenUpdating
应该默认打开)。
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