Как я могу остановить быстрое обновление / мерцание Excel во время загрузки данных из внешних источников?

31596
Drew Chapin

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

6

2 ответа на вопрос

4
STTR
Public Sub StroboscopeOff() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False Application.DisplayStatusBar = False Application.DisplayAlerts = False End Sub  Public Sub StroboscopeOn() Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True Application.DisplayStatusBar = True Application.DisplayAlerts = True End Sub 

Использование:

StroboscopeOff()  .. Update Data   StroboscopeOn() 
Я забыл упомянуть, что это было рабочее решение, даже достаточно было просто изменить Application.ScreenUpdating. Мне кажется, что мой ответ на снятие флажка «Включить фоновое обновление» является лучшим ответом, потому что для него не требуется книга с поддержкой макросов или знание VBA. Drew Chapin 10 лет назад 0
2
Drew Chapin

Снимите отметку / отключите Enable background refreshвсе подключения к книге.

Это, кажется, решило проблему для меня. Параметр «Обновить данные при открытии файла» все еще работает, но теперь экран не мигает при открытии книги. Я снова включил опцию «Включить фоновое обновление» для одного из подключений, и перепрошивка началась снова. Выключил его для этого соединения, и книга больше не мигает. Таким образом, перепрошивка, кажется, как-то связана с опцией «Включить фоновое обновление». Drew Chapin 10 лет назад 0
Вопрос: Вам не помогает Application.ScreenUpdating = False? мне любопытно nixda 10 лет назад 0
Я не пробовал `Application.ScreenUpdating = False`. Я решил отключить опцию «Включить фоновое обновление» до того, как @STTR опубликовал решение, и был достаточно доволен им. Я действительно собираюсь попытаться выдать его ответ в какой-то момент. Drew Chapin 10 лет назад 0
@ nixda, я забыл вернуться, прокомментировав, что Application.ScreenUpdating был рабочим решением. Мне кажется, что мой ответ на снятие флажка «Включить фоновое обновление» является лучшим ответом, потому что он не требует книги с поддержкой макросов или знания VBA Drew Chapin 10 лет назад 0

Похожие вопросы