Я пытаюсь анимировать параметрическую кривую в 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 и переводю код в состояние отладки, диаграмма обновляется до точки, где код был прерван.
Я подумал, что chart.refresh бы справился с задачей - и добавил doevents для хорошей меры, когда это не сработало - но не повезло. Изменение спящего вызова на родное приложение Excel. Вызов ожидания также не помогает (и в любом случае он слишком медленный).
Есть идеи?