Fungsi Tunggu VBA

Fungsi Tunggu Excel VBA

VBA Wait adalah fungsi bawaan yang digunakan untuk menjeda kod agar tidak dijalankan untuk jangka waktu tertentu, sangat mirip dengan apa yang kita lakukan dalam perintah tidur dan untuk menjeda kod yang kita gunakan kaedah application.wait.

Sebilangan kod memerlukan beberapa saat sebelum maju ke baris kod seterusnya kerana tugas-tugas lain harus diselesaikan. Dalam kes ini, kita perlu menghentikan kod yang akan dijalankan dan berhenti sebentar kemudian meneruskan pelaksanaannya. Kita dapat menjeda kod yang akan dijalankan dengan dua cara, yang pertama adalah kaedah "Tidur" dan yang kedua adalah kaedah "Tunggu". Dalam artikel sebelumnya, kami telah membincangkan kaedah "Tidur VBA" untuk menjeda kod VBA.

"Tunggu" seperti namanya sendiri yang mengatakan ia akan menyimpan kod makro yang akan dijalankan ke jangka waktu yang ditentukan. Dengan menggunakan kaedah ini, kita perlu menentukan masa kod kita berhenti, kita akan melihat contohnya seterusnya.

Sintaks fungsi TUNGGU adalah seperti berikut.

Kita perlu menyebutkan berapa lama masa kod kita berhenti. Seperti yang dapat anda lihat pada akhir kata Boolean, ini bermaksud ia mengembalikan hasilnya sebagai nilai Boolean iaitu BENAR atau SALAH.

Sehingga waktu yang ditentukan tiba ia mengatakan SALAH dan masa yang ditentukan tiba ia mengembalikan BENAR.

Ini tidak seperti fungsi SLEEP kerana TUNGGU adalah fungsi bawaan di mana SLEEP adalah Fungsi Windows. Sebelum kita mengakses fungsi SLEEP kita perlu menyebutkan kod di bawah di bahagian atas modul. Tetapi TUNGGU tidak memerlukan ini.

Kod:

# Jika VBA7 Kemudian Menyatakan PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Sebagai LongPtr) 'Untuk Sistem 64 Bit # Lain-lain Menyatakan Umum Sub Sleep Lib "kernel32" (ByVal dwMilliseconds Selama)' Untuk Sistem 32 Bit Tamat Jika 

Contoh untuk menggunakan Fungsi Tunggu Excel VBA

Anda boleh memuat turun Templat Tunggu Excel VBA ini di sini - Templat Tunggu VBA Excel

Contoh # 1

Andaikan anda bekerja di excel pada tengah hari pada pukul 14:30:00 dan anda mahu kod anda dijeda sehingga waktunya menjadi 14:40:00. Anda boleh menggunakan kod di bawah.

Kod:

 Sub Wait_Contoh1 () Aplikasi.Tunggu "14:40:00" Akhir Sub 

Kod tersebut akan menghentikan kerja anda yang unggul sehingga masa mencapai 14:40:00 di sistem operasi anda. Menyediakan waktu seperti ini adalah berbahaya kerana kita tidak selalu bekerja dari jam 14:30:00 terus berubah sepanjang masa.

Katakan setiap kali anda menjalankan kod yang anda mahu tunggu selama 2 minit, bagaimana merujuknya dalam kod anda?

Jadi, kita boleh menggunakan fungsi VBA SEKARANG dengan fungsi TIME VALUE untuk memasukkan waktu yang ditentukan dari waktu semasa.

Sekadar mengingatkan anda SEKARANG () fungsi mengembalikan tarikh dan masa semasa mengikut sistem komputer anda. Fungsi TIMEVALUE mewakili waktu dari 00:00:00 hingga 23:59:59 iaitu 11:59:59 PM dalam format 24 jam. Ia menukar nilai rentetan menjadi nilai masa.

Contohnya SEKARANG () + NILAI WAKTU (00:02:30) bermaksud Masa Semasa + 2 min 30 saat.

Sekiranya waktu sekarang adalah 14:25:30 maka ia menjadi 14:28:00.

Untuk menghentikan atau menjeda kod anda agar tidak dilaksanakan dari masa sekarang hingga 10 minit berikutnya, anda boleh menggunakan kod di bawah.

Kod:

 Sub Wait_Contoh2 () Aplikasi.Tunggu (Sekarang () + Nilai Masa ("00:10:00")) Akhir Sub 

Penting untuk menggunakan fungsi SEKARANG () untuk jeda yang tepat, jika tidak, ada kemungkinan buku kerja excel anda dijeda hingga tengah malam. Namun, kita dapat keluar dari kaedah jeda pada bila-bila masa dengan menekan kekunci Esc atau Break Key.

Contoh # 2

Tunggu 10 Detik Setiap kali Loop Berjalan

Kaedah menunggu digunakan dengan baik dengan gelung. Terdapat situasi di mana anda mungkin perlu menunggu selama 10 saat setiap kali gelung berjalan. Contohnya, lihat data di bawah.

Untuk mengira Untung = (Jualan - Kos) anda ingin membuat gelung dan selepas setiap gelung, anda ingin menunggu selama 10 saat untuk memeriksa sama ada hasilnya tepat atau tidak. Kod di bawah akan melakukannya.

Kod:

 Sub Wait_Contoh3 () Dim k Sebagai Integer Untuk k = 2 hingga 9 Sel (k, 4). Nilai = Sel (k, 2) - Aplikasi Sel (k, 3). Tunggu (Sekarang () + Nilai Masa ("00:00 : 10 ")) Sub Akhir Akhir seterusnya 

Kod ini akan mengira lajur keuntungan mengikut baris. Setelah selesai baris pertama, ia akan menunggu selama 10 saat sebelum mengira baris seterusnya.

Tidur VBA vs Tunggu VBA

TIDUR VBATUNGGU VBA
Ini bukan fungsi terbina dalam VBA, memerlukan kod khas untuk mengakses fungsi ini.Ini adalah fungsi terbina dalam VBA, tidak memerlukan kod khas untuk mengakses fungsi ini.
Tidur memerlukan milisaat sebagai jangka masa.Tunggu memerlukan jangka masa yang tetap.
Kita boleh melambatkan kod dalam milisaatKita boleh melambatkan hanya dalam masa beberapa saat.