Ажурирање екрана ВБА | Убрзање процеса покретања кода

Ажурирање екрана за Екцел ВБА

Ажурирање екрана ВБА је својство које се користи за избегавање или спречавање бљескова ометања током покретања кода и убрзавање искључивањем ажурирања екрана. Ажурирање екрана можемо искључити постављањем овог својства као нетачног.

Често можемо осетити да екран Екцел луди док је макро покренут и готово нас то фрустрира. Али како да се носимо са тим ситуацијама и учинимо да код ради брже од уобичајене споре ствари?

Ажурирање екрана је нешто што можемо приметити док је Екцел макро покренут. Када се задатак извршава, можемо приметити да наш екран ажурира вредности док макро не заврши додељени задатак. Како наш екран трепери или освежава, то доводи до успоравања програма Екцел и треба више времена него обично да би се задатак извршио.

У ВБА имамо својство звано „СцреенУпддатинг“ и постављамо ово својство на ФАЛСЕ тако да ће елиминисати процес ажурирања екрана док је код покренут.

У овом чланку опростићемо се од гледања акционе драме на екрану док код ради. Данас ћете учинити да ваш код ради брже и брже него што је уобичајено.

Када користити функцију за ажурирање екрана?

Ако сумњате када да користите ову технику. Погледајте доње тачке.

  • Када петљате кроз велики број ћелија.
  • Слање е-поште из програма Екцел ВБА.
  • Пребацивање између Екцел књига.
  • Отварање нових радних књига.

Како се користи функција за ажурирање екрана у ВБА коду?

Овде можете преузети овај ВБА СцреенУпдатинг Екцел образац - ВБА СцреенУпдатинг Екцел Темплате

Пример # 1 - Искључите ажурирање екрана

За пример погледајте доњи код.

Шифра:

 Суб Сцреен_Упдатинг () Дим РовЦоунт Ас Лонг Дим ЦолумнЦоунт Ас Лонг Дим МиНумбер Ас Лонг МиНумбер = 0 Фор РовЦоунт = 1 то 50 Фор ЦолумнЦоунт = 1 То 50 МиНумбер = МиНумбер + 1 Целлс (РовЦоунт, ЦолумнЦоунт) .Селецт Целлс (РовЦоунт, Цолумн) .Валуе = МиНумбер Следећи број колоне Следећи крај реда Ред 

Горе наведено има угнежђену ВБА петљу за уметање серијских бројева из прве колоне у 50. колону и поново се враћа и убацује серијски број почев од 51 из другог реда у 50. колону.

Овако, убациваће се док не досегне 50. ред.

Док је овај код покренут, можете приметити како заслон трепери и не можете учинити ништа осим гледања овог лудог тренутка.

Да бисмо избегли све ово, можемо додати Ажурирање екрана на ФАЛСЕ.

Да бисмо прво приступили функцији Ажурирање екрана, морамо приступити објекту Апликација.

Као што можемо видети са објектом Апплицатион, имамо многа својства и методе. Дакле, изаберите Ажурирање екрана са листе ИнтеллиСенсе.

Белешка: Функцију ажурирања екрана морате применити одмах након декларације променљивих.

Након одабира својства Ажурирање екрана ставите знак једнакости (=).

Као што можемо видети две логичке вредности, тј. ФАЛСЕ & ТРУЕ.

Да бисте зауставили ажурирање екрана, подесите статус на ФАЛСЕ.

Сада, када макро почне да се покреће први, ажурираће статус ажурирања екрана на ФАЛСЕ и прећи на следећи ред.

Будући да је макро извршило Ажурирање екрана на ФАЛСЕ, неће дозволити ажурирање екрана док код извршава свој задатак.

Пример # 2 -

На крају увек подесите Ажурирање екрана на ТРУЕ

Видео сам да су многи људи подесили Ажурирање екрана на ФАЛСЕ, али су заборавили да га врате на ТРУЕ на крају макронаредбе.

Увек на крају макроа вратите Ажурирање екрана на ТРУЕ.

Шифра:

 Суб Сцреен_Упдатинг () Дим РовЦоунт ас Лонг Дим ЦолумнЦоунт Ас Лонг Дим МиНумбер Ас Лонг Апплицатион.СцреенУпдатинг = Фалсе МиНумбер = 0 Фор РовЦоунт = 1 то 50 Фор ЦолумнЦоунт = 1 То 50 МиНумбер = МиНумбер + 1 Целлс (РовЦоунт, ЦолумнЦоунт) .Селецт Целецт. (РовЦоунт, ЦолумнЦоунт) .Валуе = МојБрој Сљедећи Број колона Сљедећи РовЦоунт Апплицатион.СцреенУпдатинг = Труе Енд Суб