2015-12-19 4 views
-1

книги My Excel не обновляется после запуска макроса до двойного щелчка левой кнопкой мыши, несмотря наExcel не обновляется после макро

Application.ScreenUpdating = True 

В конце коды. Я попытался выбрать и активировать ячейку без толку

Application.ScreenUpdating = True 
Range("A6").Select 
Range("A6").Activate 

Макрос довольно интенсивно в памяти в течение примерно 40 секунд, а затем его завершения. Я не хочу публиковать весь макрос, поскольку некоторые из них являются собственностью. Однако это стандартный макрос с использованием встроенных функций Excel.

+0

Что значит «не обновляется»? Рассчитать? Обновление Screan? Что делает ваш код? Этого недостаточно, чтобы воспроизвести ошибку. – vacip

+3

** Проблема в той части кода, которую вы выбрали не для публикации. ** –

+0

Хорошо, просто чтобы быть ясным: проблема, о которой вы упомянули, не является ошибкой excel. Это ваш макрос. Он делает что-то не так. Мы не можем помочь вам, если вы не разместите свой код или часть, которая вызывает ошибку. – vacip

ответ

1

Я бы посмотрел, находится ли книга в режиме ручного расчета, а затем попытайтесь заставить рабочий лист пересчитать в конце макроса.

Worksheet(1).Calculate 
+0

Это, похоже, обновляет некоторые из отображаемых ячеек, но, к сожалению, не все из них. Рабочая книга снова работает нормально, если я переключусь на другой лист, а затем Назад снова. Все значения ячеек существуют, но Excel, похоже, имеет графический сбой, требующий перезагрузки рабочего листа. Есть ли обходной путь для этого? – kestertonj

+0

Вы пробовали свой код на другом компьютере? Может быть, это просто компьютер, который жарится. – vacip

+0

@kestertonj Что касается добавления рабочей книги вместо «Рабочие книги» (1) .RefreshAll' – NinjaLlama

2

Вы используете кнопку управления формой на листе с присвоенным ей макросом? Если это так, у меня возникли проблемы с неправильной активацией листов, и обходной путь выбора другого листа, а затем снова был тем же обходным решением, которое я изначально использовал.

Если это так, попробуйте заменить кнопку (управление формой) кнопкой управления (элемент управления ActiveX) и добавить нижнюю часть ниже на правильный лист.

'You can create this by right clicking the button after placing it and click 'View Code' 
Private Sub CommandButton1_Click() 'Or Private Sub WhatEverYourButtonIsCalled_Click() 
    Call TheMacroYouWantToUse 
End Sub 

Я понимаю, что это может быть более достойным, чем комментарий ответ достойный, но я до сих пор 8 очков репутации стесняется возможности комментировать свободно, поэтому я заранее извиняюсь.

1

Поскольку я не могу комментировать из-за отсутствия должностей, я должен опубликовать это как ответ: решение SilentRevolution верное, у меня тоже была эта проблема, и после прочтения его ответа было понятно, что это было только в книгах, где У меня был контроль формы, с которым я столкнулся.

Я только думаю, что это важно, потому что более ранние ответы отклоняют это как даже проблему программирования, но проблема Office VBA 365 Excel не является аппаратной проблемой.

Это не проблема в более ранних версиях Excel и не может быть дублирована в них.

+0

Ты точно прав Бианари .... есть ли исправление для этого? –

1

Я думал, что у меня была аналогичная проблема, продуцирующие математику листов с помощью VBA в Excel 2016.

я использовал взаимосвязанные подпрограммы каждый, используя самодельный rndb() функцию, которая сама использует функцию rnd(). В первый раз после загрузки нажатие кнопки «новый тип Q 1», похоже, не обновит лист, если последнее использование было «новым типом Q», но для других типов и для типов 1 при последующих попытках.

Оказалось, что он генерировал новые, но идентичные вопросы (включая 6-значный случайный номер листа) при первом запуске из-за rnd() ... вылечил, включив «рандомизировать» среди множества, теперь известный как избыточный, ScreenUpdating = True заявлений.

Смежные вопросы