Заставить диаграмму Excel рисовать до того, как она будет прокручена, используя VBA - PullRequest
0 голосов
/ 19 февраля 2019

У нас есть очень сложный файл Excel с множеством листов, строк, столбцов и зависимостей, все из которых работают в основном нормально.Файл находится в режиме автоматического расчета.Результатом всего этого является диапазон, который используется для построения простой линейной диаграммы.

Когда данные в этом диапазоне обновляются, диаграмма перерисовывается при прокрутке, но есть очень заметнаязадержка.Во-первых, он не будет перерисовываться до тех пор, пока прокрутка не будет остановлена ​​(пользователь отпускает кнопку мыши, которая используется для перетаскивания каретки прокрутки).Во-вторых, даже после этого, это обычно около 1-2 секунд.В-третьих, иногда это занимает гораздо больше времени: у нас был пользователь, который смог сделать снимок экрана диаграммы без данных и отправить его нам по электронной почте, и только спустя несколько минут он обновился.

В VBA мы можемиметь подпрограмму, выполняемую при изменении исходных данных.Можно ли каким-то образом вызвать перерисовку графика до его прокрутки?До сих пор я пробовал следующее:

Dim chart As ChartObject
Set chart = shtMainCalc.ChartObjects(1)
Dim series As series
Set series = chart.chart.SeriesCollection(1)
series.Name = series.Name
series.Shadow = series.Shadow
chart.chart.Refresh
chart.Duplicate
Set chart = shtMainCalc.ChartObjects(2)
chart.Delete
Application.Undo
...