ВБА Пауза | Паузирајте ВБА код помоћу функције спавања и чекања
Паузирајте покретање ВБА кода
ВБА пауза користи се за паузирање извршења кода одређено време и за паузирање кода у ВБА користимо методу апплицатион.ваит.
Када градимо велике ВБА пројекте након извођења нечега, можда ћемо требати да сачекамо неко време да бисмо обавили друге задатке. У таквим сценаријима како зауставити макро код да би обавио свој задатак? ВБА код можемо паузирати на одређено временско раздобље помоћу две функције, а функције су „Чекај“ и „Спавај“.
Како паузирати код помоћу методе чекања?
„Чекај“ је функција коју користимо у ВБА да задржимо макро у раду одређено време. Применом ове функције морамо напоменути до када наш код треба да сачека.
Овде можете преузети овај ВБА Паузирај Екцел образац - ВБА Паузирај Екцел образацНа пример, ако извршавате код у 13:00:00 ако наведете време као „13:15:00“, тада ће макро бити активан 15 минута.
Сада погледајте аргумент функције ВАИТ у ВБА.
У аргументу са временом морамо напоменути у које време наш код треба да застане или сачека.
На пример, погледајте доленаведени ВБА код.
Шифра:
Суб Пауза_Пример1 () опсег ("А1"). Валуе = "Хелло" Ранге ("А2"). Валуе = "Велцоме" Апплицатион.Ваит ("13:15:00") Ранге ("А3"). Валуе = " За ВБА "Крај Суб
Запамтите, приликом покретања овог кода моје системско време је 13:00:00, чим покренем код, извршиће прве две линије тј.
Опсег ("А1"). Вредност = "Поздрав" и Опсег ("А2"). Вредност = "Добродошли"
Али ако погледате следећи ред, пише Апплицатион.Ваит („13:15:00“), па ће након извршавања задатака тих линија мој макро бити паузиран 15 минута, тј. Од 13:00:00 сачекаће док мој систем време достиже 13:15:01.
Једном када моје системско време достигне то време извршиће преостале редове кода.
Опсег ("А3"). Вредност = "До ВБА"
Међутим, ово није најбољи начин вежбања кода за паузу, рецимо да код покрећете у различито време, тада морамо да користимо НОВ ВБА функцију са функцијом ТИМЕ ВАЛУЕ.
Сада функција враћа тренутни датум и време према систему на којем радимо.
ВРИЈЕМЕ Вриједност функција задржава време од 00:00:00 до 23:59:29.
Ок, претпоставимо да морамо паузирати код 10 минута кад год га покренемо, онда можемо користити доњи код.
Шифра:
Под пауза_Пример1 () опсег ("А1"). Валуе = "Хелло" Ранге ("А2"). Валуе = "Велцоме" Апплицатион.Ваит (Нов () + ТимеВалуе ("00:00:10")) Ранге (" А3 "). Валуе =" За ВБА "Крај Суб
Ово је слично претходном коду, али једина разлика је што смо додали функцију НОВ & ТИМЕ ВАЛУЕ.
Кад год покренемо овај код, он ће задржати или зауставити извршење 10 минута.
Како паузирати ВБА код помоћу методе спавања?
Спавање је компликована функција у ВБА јер није уграђена функција. Будући да није уграђен да би био доступан за употребу, на врх нашег модула морамо додати доњи код.
Шифра:
# Ако је ВБА7 тада јавно прогласите ПтрСафе Суб Слееп Либ "кернел32" (БиВал двМиллисецондс Ас ЛонгПтр) 'за 64-битне системе # Елсе Публиц Децларе Суб Слееп Либ "кернел32" (БиВал двМиллисецондс Ас Лонг) # Енд Иф' за 32 бит системе
Само треба да копирате горњи код и залепите га на врх модула.
Разлог зашто треба да додамо горњи код јер је СЛЕЕП ВБА функција представљена у Виндовс ДЛЛ датотекама, тако да морамо да пријавимо номенклатуру пре него што започнемо потпроцедуру.
Ок, погледајмо сада пример функције СЛЕЕП.
Шифра:
Суб Паусе_Екампле2 () Затамни време почетка као низ Затамни време завршетка као низ Почетак времена = време МсгБок почетак времена спавања (10000) Крај времена = време МсгБок крај времена Крај
Прво смо прогласили две променљиве као Стринг.
Пригуши време почетка као низ Пригуши време почетка као низ
Потом смо променљивој СтартТиме доделили функцију ТИМЕ екцел. Функција ТИМЕ враћа тренутно време према систему.
Време почетка = време
Затим смо доделили исто за приказ у оквиру за поруку.
МсгБок СтартТиме
Тада сам функцију СЛЕЕП применио као Слееп (10000).
Овде је 10000 милисекунди што је једнако 10 секунди у ВБА.
Тада сам, коначно, променљивој доделио још једну функцију ТИМЕ Време завршетка.
Сад сам поново написао код да покажем време.
Крај времена = време
Ово ће показати разлику између времена почетка и завршетка.
Сада ћу извршити код и видети шта је време почетка.
Када извршим код, моје системско време је 13:40:48 и сада ће мој код спавати 10 секунди. На крају, моје време је следеће.
Дакле, овако, можемо зауставити извршење кода одређено време.