ВБА Пауза - Паузирајте ВБА код помоћу функције спавања и чекања

Паузирајте покретање ВБА кода

ВБА Пауза се користи за паузирање извршења кода одређено време и за паузирање кода у ВБА користимо методу апплицатион.ваит.

Када градимо велике ВБА пројекте након што смо нешто извели, можда ћемо морати да сачекамо неко време да бисмо обавили друге задатке. У таквим сценаријима, како зауставити макро код да би обавио свој задатак? Можемо паузирати ВБА код на одређено временско раздобље помоћу две функције, а те функције су „Чекај“ и „Спавај“.

Како паузирати код помоћу методе чекања?

„Чекај“ је функција коју користимо у ВБА да задржимо макро у раду одређено време. Применом ове функције морамо да напоменемо до када треба да чека наш код.

На пример, ако извршавате код у 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 секунди. На крају, моје време је следеће.

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

Занимљиви Чланци...