2015-08-12 5 views
1

Это то, что я много читал сам, но не смог найти решение. У меня есть программа около 10 000 строк, где у меня есть процедура, прикрепленная к определенной командной кнопке. Это вычисляет некоторые комплексные уравнения.Экран Мерцание VBA Excel

Я начал код, как обычно, с Application.ScreenUpdating = False и повернул его в True до окончания основной процедуры. Но только верхняя часть моего листа Excel (рядом с панелью меню) продолжает мерцать около 10 секунд, пока не появится результат. Я попытался отключить события, а также перевести вычисления в руководство, но ничего не помогает. Даже попытался упомянуть обновление экрана до значения false в начале вспомогательных процедур, связанных с основной процедурой.

Любое предложение относительно этого будет действительно оценено. Спасибо!

+0

Есть ли код события, который работает для событий рабочего листа? Как «Worksheet_Change» или «Worksheeet_Activate» или что-то в этом роде? – Soulfire

+0

Нет, не совсем. Просто очень простые петли и переменные без какого-либо события. – Athrika

ответ

0

Попробуйте добавить это в начале суб:

Application.EnableEvents = False 
Application.DisplayStatusBar = False 
Application.Calculation = xlCalculationManual 

И это только до конца:

Application.EnableEvents = True 
Application.DisplayStatusBar = True 
Application.Calculation = xlCalculationAutomatic 

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

+0

Благодарим за отзыв. Кажется, что он получил оттенок лучше, но все же экран мерцает. Результат приходит каждый раз. Для выполнения небольших вычислений этого не происходит. Я еще не профессионал в VBA. Возможно, мое кодирование может быть неэффективным. Еще раз спасибо. – Athrika

+0

Если ваш код не слишком длинный, вы можете опубликовать его, чтобы узнать, есть ли какие-либо предложения. Вы используете '.Select' или' .Activate' много? – BruceWayne

+0

Да, я использовал во время сюжета. Но даже если я прокомментирую сюжетную процедуру, экран мерцает во время вычисления. И калонизация довольно чистая. Это сложное с петлями, но все же с простой логикой. К сожалению, я не могу загрузить весь код. Его около 10.000 строк и в сотрудничестве с конфиденциальной работой. – Athrika

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