Как обновить Excel во время отладки - PullRequest
3 голосов
/ 27 октября 2008

Если я выполняю отладку (в данном случае сборку Visual Studio, называемую Excel) и код обновляет рабочий лист Excel, как мне заставить Excel перерисовать текущий лист / окно, пока он находится в отладчике?

1 Ответ

2 голосов
/ 27 октября 2008

Если вы вызываете перекрестный процесс Excel (например, с помощью автоматизации), то Excel должен автоматически отображать любые изменения по мере выполнения вызовов, если вы не установили xlApp.ScreenUpdating = False. Если это так, то, вероятно, лучше использовать условное условие, чтобы не устанавливать xlApp.ScreenUpdating = False, если вы работаете в режиме отладки, когда у вас установлены точки останова. В противном случае вам придется установить xlApp.ScreenUpdating = True из другого процесса (используя GetObject() или что-то подобное, чтобы вы могли получить тот же экземпляр приложения Excel).

Однако, если ваш код вызывается в процессе (например, если ваш код работает как надстройка), то ваш код запускается с помощью комбинации горячих клавиш, кнопки CommandBar, обратного вызова управления ленты или лайк. В этом случае Excel является однопоточным, и ваш код останавливает все выполнение Excel. Единственное, что я мог придумать, в этом случае, это использовать «изменить и продолжить», добавив строку xlApp.ScreenUpdating = True, а затем перейти к следующей строке. (Не забудьте удалить эту строку позже!)

Если вы не используете xlApp.ScreenUpdating = False, тогда я действительно не знаю, в чем ваша проблема, и вам придется предоставить более подробную информацию о вашем коде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...