【发布时间】:2018-11-10 15:36:55
【问题描述】:
我正在尝试通过在迭代循环中生成其范围来为 Excel 中的参数曲线设置动画。我正在使用代码:
Public Sub playswirl()
Range([a8], [a8].End(xlDown)).Clear
Set cell = Range("a8")
Do While cell.Offset(0, 1) <> ""
cell.Offset(-1, 0).Copy cell
ActiveSheet.ChartObjects(2).Chart.Refresh
DoEvents
Sleep (50)
Set cell = cell.Offset(1, 0)
Loop
End Sub
图表在第一条指令中被清除,然后在循环中一次重建一个项目。在代码运行时,我看到电子表格中的值一次更改一个,但图表从未更新(我看到完整的曲线,即执行第一行代码之前的状态)。当我 ctrl-break 并将代码置于调试状态时,图表会更新到代码被中断的位置。 我认为 chart.refresh 可以解决问题 - 并在不起作用时添加了 doevents 以作为良好的衡量标准 - 但没有运气。将 sleep 调用更改为 Excel-native Application.Wait 调用也无济于事(在任何情况下都太慢了)。 有什么想法吗?
【问题讨论】: