ВБА функција чекања | Како се користи Екцел ВБА метод чекања?
Екцел ВБА функција чекања
ВБА Чекај је уграђена функција која се користи за заустављање извршавања кода одређено време, врло је слична ономе што радимо у наредби за спавање и за паузирање кода који користимо методом апплицатион.ваит.
Неки кодови захтевају нешто пре преласка на следећи ред кода због других задатака које треба извршити. У тим случајевима морамо зауставити извршавање кода и паузирати неко време, а затим наставити са извршењем. Код можемо извршити на два начина, први је метода „мировања“, а други метода „чекања“. У нашем ранијем чланку разговарали смо о методи „ВБА Слееп“ за паузирање ВБА кода.
„Сачекајте“ како само име каже да ће задржати макро код који се извршава у одређеном временском оквиру. Коришћењем ове методе треба да одредимо време када би наш код требало да паузира, примере ћемо видети даље.
Синтакса функције ВАИТ је следећа.
Морамо напоменути колико времена би наш код требало да заустави. Као што видите на крају, каже Боолеан, то значи да резултат враћа као Боолеове вредности, тј. ТРУЕ или ФАЛСЕ.
Док не стигне одређено време, пише ФАЛСЕ и у тренутку када стигне одређено време враћа се ТРУЕ.
Ово је за разлику од функције СЛЕЕП јер је ВАИТ уграђена функција у којој је СЛЕЕП функција Виндовс-а. Пре него што приступимо функцији СЛЕЕП, морамо споменути доњи код на врху модула. Али ВАИТ ово не захтева.
Шифра:
# Ако ВБА7 тада јавно објави ПтрСафе Суб Слееп Либ „кернел32“ (БиВал двМиллисецондс Ас ЛонгПтр) ‘За 64-битне системе # Елсе Публиц Децларе Суб Слееп Либ„ кернел32 “(БиВал двМиллисецондс Ас Лонг)‘ За 32-битне системе се завршава ако
Примери употребе функције ВБА функције чекања
Овај ВБА Ваит Екцел предложак можете преузети овде - ВБА Ваит Екцел ТемплатеПример # 1
Претпоставимо да радите у Екцелу средином дана у 14:30:00 и желите да ваш код буде паузиран док време не постане 14:40:00. Можете користити доњи код.
Шифра:
Суб Ваит_Екампле1 () Апплицатион.Ваит "14:40:00" Енд Суб
Код ће зауставити ваш Екцел да ради све док време не достигне 14:40:00 у вашем оперативном систему. Обезбеђивање оваквог времена је опасно, јер не радимо увек од 14:30:00, оно се стално мења.
Рецимо да кад год покренете код желите да сачекате 2 минута, како то упутити у свој код?
Дакле, можемо да користимо функцију ВБА НОВ са функцијом ТИМЕ ВАЛУЕ да унесемо одређено време из тренутног времена.
Само да вас подсетим, функција САДА () враћа тренутни датум и време према вашем рачунарском систему. Функција ТИМЕВАЛУЕ представља време од 00:00:00 до 23:59:59 тј. 11:59:59 пм у формату од 24 сата. Претвара вредност низа у временску вредност.
На пример САДА () + ТИМЕВАЛУЕ (00:02:30) значи Тренутно време + 2 мин 30 сек.
Ако је тренутно време 14:25:30, онда постаје 14:28:00.
Да бисте зауставили или зауставили извршавање кода од тренутног времена до следећих 10 минута, можете користити доњи код.
Шифра:
Суб Ваит_Екампле2 () Апплицатион.Ваит (Нов () + ТимеВалуе ("00:10:00")) Енд Суб
Важно је користити функцију НОВ () за тачну паузу, у супротном постоје шансе да је ваша екцел радна свеска паузирана до поноћи. Међутим, у сваком тренутку можемо изаћи из методе паузе притиском на изаћи кључ или Бреак Кеи.
Пример # 2
Сачекајте 10 секунди сваки пут када се петља покрене
Метода чекања добро се користи са петљама. Постоје ситуације у којима ћете можда морати сачекати 10 секунди сваки пут када се петља покрене. На пример, погледајте податке у наставку.
Да бисте израчунали добит = (продаја - трошак) желите да креирате петљу и након сваке петље желите да сачекате 10 секунди да бисте проверили да ли је резултат тачан или не. То ће учинити доњи код.
Шифра:
Суб Ваит_Екампле3 () Дим к као цео број за к = 2 до 9 ћелија (к, 4) .Вредност = Ћелије (к, 2) - Ћелије (к, 3) Апликација. Сачекајте (Сада () + Временска вредност ("00:00 : 10 ")) Следећи к Крај Суб
Овај код ће израчунати колону профита ред по ред. Након завршетка првог реда, сачекаће 10 секунди пре него што израчуна следећи ред.
ВБА Слееп вс ВБА Ваит
ВБА СЛЕЕП | ВБА ВАИТ | |
То није уграђена функција ВБА, потребан јој је посебан код за приступ овој функцији. | То је ВБА уграђена функција, не захтева посебан код за приступ овој функцији. | |
Спавање захтева временске оквире у милисекундама. | Чекање захтева редован временски оквир. | |
Код можемо одложити за милисекунде | Можемо одложити само за целе секунде. |