Pag-andar ng VBA Wait | Paano magagamit ang Excel VBA Wait Method?
Pag-andar ng Excel VBA Wait
VBA Wait ay isang built-in na pagpapaandar na ginagamit upang i-pause ang code mula sa pagpapatupad para sa isang tinukoy na tagal ng oras, ito ay halos kapareho sa kung ano ang ginagawa namin sa isang utos sa pagtulog at upang i-pause ang isang code na ginagamit namin ng application.wait na pamamaraan.
Ang ilan sa mga code ay nangangailangan ng ilang oras bago ang pag-usad sa susunod na linya ng code dahil sa iba pang mga gawain upang makumpleto. Sa mga kasong ito, kailangan naming ihinto ang code na naisasagawa at i-pause nang ilang oras pagkatapos ay magpatuloy sa pagpapatupad. Maaari naming i-pause ang code na naisakatuparan sa dalawang paraan, ang una ay ang "Sleep" na pamamaraan at ang pangalawa ay ang "Maghintay" na pamamaraan. Sa aming naunang artikulo, tinalakay namin ang pamamaraang "VBA Sleep" upang i-pause ang VBA code.
"Maghintay" tulad ng mismong pangalan na nagsasabing hahawak nito ang macro code upang maipatupad sa isang tinukoy na time frame. Gamit ang pamamaraang ito kailangan naming tukuyin ang oras na dapat mag-pause ang aming code, makakakita kami ng mga halimbawa sa susunod.
Ang syntax ng pagpapaandar ng WAIT ay ang mga sumusunod.
Kailangan naming banggitin ang dami ng oras na dapat i-pause ng aming code. Tulad ng nakikita mo sa dulo sinasabi nito ang Boolean, nangangahulugan ito na ibinabalik nito ang resulta bilang mga halaga ng Boolean ibig sabihin ay TAMA o MALI.
Hanggang sa dumating ang tinukoy na oras sinasabi na MALI at dumating ang sandaling tinukoy na oras ay nagbabalik ito ng TUNAY.
Hindi ito katulad ng pagpapaandar ng SLEEP dahil ang WAIT ay isang built-in na function kung saan ang SLEEP ay isang Windows Function. Bago namin ma-access ang pagpapaandar ng Tulog kailangan nating banggitin ang ibaba code sa tuktok ng module. Ngunit ang WAIT ay hindi nangangailangan nito.
Code:
# Kung VBA7 Pagkatapos Public Ipahayag ang PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Bilang LongPtr) 'Para sa 64 Bit System # Iba Pang Publiko Ipahayag Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Long)' Para sa 32 Bit Systems End Kung
Mga halimbawa upang magamit ang Excel VBA Wait Function
Maaari mong i-download ang VBA Wait Excel Template na ito dito - VBA Wait Excel TemplateHalimbawa # 1
Ipagpalagay na nagtatrabaho ka sa isang excel mid-day ng 14:30:00 at nais mong i-pause ang iyong code hanggang sa maging 14:40:00 ang oras. Maaari mong gamitin ang code sa ibaba.
Code:
Sub Wait_Example1 () Application.Wait "14:40:00" End Sub
Ititigil ng code ang iyong excel mula sa pagtatrabaho hanggang sa umabot ang oras 14:40:00 sa iyong operating system. Mapanganib ang pagbibigay ng oras tulad nito dahil hindi tayo palaging gumagana mula 14:30:00 na patuloy itong nag-iiba sa lahat ng oras.
Sabihin nating tuwing pinapatakbo mo ang code na nais mong maghintay ng 2 minuto, paano ito ire-refer sa iyong code?
Kaya, maaari naming gamitin ang pagpapaandar ng VBA NGAYON sa pag-andar ng TIME VALUE upang ipasok ang tinukoy na oras mula sa kasalukuyang oras.
Paalala lamang sa iyo NGAYON () ay nagbabalik ng kasalukuyang petsa at oras ayon sa system ng iyong computer. Ang pag-andar ng TIMEVALUE ay kumakatawan sa oras mula 00:00:00 hanggang 23:59:59 ibig sabihin 11:59:59 P.M sa format na 24 na oras. Ini-convert nito ang halaga ng string sa isang halaga sa oras.
Halimbawa Halimbawa () + TIMEVALUE (00:02:30) ay nangangahulugang Kasalukuyang Oras + 2 min 30 sec.
Kung ang kasalukuyang oras ay 14:25:30 pagkatapos ay magiging 14:28:00.
Upang ihinto o i-pause ang iyong code mula sa pagpapatupad mula sa kasalukuyang oras hanggang sa susunod na 10 minuto maaari mong gamitin ang code sa ibaba.
Code:
Sub Wait_Example2 () Application.Wait (Ngayon () + TimeValue ("00:10:00")) End Sub
Mahalagang gumamit ng pag-andar NGAYON () para sa tumpak na pag-pause, kung hindi man, may mga pagkakataong ang iyong excel workbook ay naka-pause hanggang hatinggabi. Gayunpaman, maaari kaming lumabas sa paraan ng pag-pause sa anumang punto ng oras sa pamamagitan ng pagpindot sa Esc susi o Break Key.
Halimbawa # 2
Maghintay para sa 10 Segundo Sa tuwing Tumatakbo ang Loop
Ang pamamaraan ng paghihintay ay mahusay na ginamit sa mga loop. May mga sitwasyon kung saan maaari kang mangailangan na maghintay ng 10 segundo sa tuwing tumatakbo ang loop. Halimbawa, tingnan ang data sa ibaba.
Upang makalkula ang Kita = (Benta - Gastos) na nais mong lumikha ng isang loop at pagkatapos ng bawat loop, nais mong maghintay para sa 10 segundo upang suriin kung ang resulta ay tumpak o hindi. Gawin iyon ng code sa ibaba.
Code:
Sub Wait_Example3 () Dim k Bilang Integer Para sa k = 2 To 9 Cells (k, 4). Halaga = Mga Cell (k, 2) - Mga Cell (k, 3) Application. Maghintay (Ngayon () + TimeValue ("00:00 : 10 ")) Susunod k End Sub
Kalkulahin ng code na ito ang linya ng haligi ng kita ayon sa linya. Matapos ang pagkumpleto ng unang linya, maghihintay ito ng 10 segundo bago ito makalkula ang susunod na linya.
VBA Sleep vs VBA Wait
Tulog na VBA | VBA WAIT | |
Hindi ito isang built-in na function ng VBA, nangangailangan ng isang espesyal na code upang ma-access ang pagpapaandar na ito. | Ito ay isang built-in na pagpapaandar ng VBA, hindi nangangailangan ng anumang espesyal na code upang ma-access ang pagpapaandar na ito. | |
Ang pagtulog ay nangangailangan ng milliseconds bilang time frame. | Ang paghihintay ay nangangailangan ng isang regular na time frame. | |
Maaari nating antalahin ang code sa milliseconds | Maaari lamang tayong mag antala sa buong segundo. |