Fungsi Tunggu VBA

Fungsi Tunggu VBA Excel

VBA Wait adalah fungsi bawaan yang digunakan untuk menjeda kode agar tidak dieksekusi selama jangka waktu tertentu, sangat mirip dengan apa yang kita lakukan dalam perintah tidur dan untuk menjeda kode kita menggunakan metode application.wait.

Beberapa kode memerlukan beberapa saat sebelum maju ke baris kode berikutnya karena tugas lain harus diselesaikan. Dalam kasus ini, kita perlu menghentikan kode untuk dieksekusi dan berhenti sebentar kemudian melanjutkan eksekusi. Kita dapat menghentikan sementara kode untuk dieksekusi dengan dua cara, yang pertama adalah metode "Tidur" dan yang kedua adalah metode "Tunggu". Di artikel kami sebelumnya, kami telah membahas metode "VBA Sleep" untuk menjeda kode VBA.

"Tunggu" seperti namanya itu sendiri yang akan menahan kode makro untuk dieksekusi ke kerangka waktu yang ditentukan. Dengan menggunakan metode ini kita perlu menentukan waktu jeda kode kita, kita akan melihat contoh berikutnya.

Sintaks dari fungsi WAIT adalah sebagai berikut.

Kami perlu menyebutkan berapa lama kode kami harus berhenti. Seperti yang Anda lihat di bagian akhir tertulis Boolean, ini berarti ia mengembalikan hasil sebagai nilai Boolean yaitu TRUE atau FALSE.

Sampai waktu yang ditentukan tiba dikatakan SALAH dan saat waktu yang ditentukan tiba itu mengembalikan TRUE.

Ini tidak seperti fungsi SLEEP karena WAIT adalah fungsi bawaan di mana SLEEP adalah Fungsi Windows. Sebelum kita mengakses fungsi SLEEP, kita perlu menyebutkan kode di bawah ini di bagian atas modul. Tapi WAIT tidak membutuhkan ini.

Kode:

# Jika VBA7 Lalu Deklarasikan Publik Lib PtrSafe Sub Tidur "kernel32" (ByVal dwMilliseconds As LongPtr) 'Untuk Sistem 64 Bit # Lain Umum Deklarasikan Sub Tidur Lib "kernel32" (ByVal dwMilliseconds As Long)' Untuk Sistem 32 Bit Berakhir Jika 

Contoh untuk menggunakan Fungsi Tunggu VBA Excel

Anda dapat mengunduh Templat Excel Tunggu VBA ini di sini - Templat Excel Tunggu VBA

Contoh 1

Asumsikan Anda bekerja di tengah hari excel pada 14:30:00 dan Anda ingin kode Anda dijeda hingga waktu menjadi 14:40:00. Anda dapat menggunakan kode di bawah ini.

Kode:

 Sub Aplikasi Wait_Example1 (). Tunggu "14:40:00" End Sub 

Kode tersebut akan menghentikan kinerja excel Anda hingga waktu mencapai 14:40:00 di sistem operasi Anda. Memberikan waktu seperti ini berbahaya karena kita tidak selalu bekerja dari pukul 14:30, itu terus berubah sepanjang waktu.

Katakanlah setiap kali Anda menjalankan kode Anda ingin menunggu selama 2 menit, bagaimana merujuk ini dalam kode Anda?

Jadi, kita dapat menggunakan fungsi VBA NOW dengan fungsi TIME VALUE untuk memasukkan waktu yang ditentukan dari waktu saat ini.

Sekadar mengingatkan Anda SEKARANG () fungsi mengembalikan tanggal dan waktu saat ini sesuai sistem komputer Anda. Fungsi TIMEVALUE mewakili waktu dari 00:00:00 hingga 23:59:59 yaitu 11:59:59 dalam format 24 jam. Ini mengubah nilai string menjadi nilai waktu.

Untuk Contoh SEKARANG () + TIMEVALUE (00:02:30) berarti Waktu Saat Ini + 2 menit 30 detik.

Jika waktu saat ini adalah 14:25:30 maka menjadi 14:28:00.

Untuk menghentikan atau menghentikan sementara kode Anda dieksekusi dari waktu saat ini hingga 10 menit berikutnya, Anda dapat menggunakan kode di bawah ini.

Kode:

 Sub Wait_Example2 () Application.Wait (Now () + TimeValue ("00:10:00")) End Sub 

Penting untuk menggunakan fungsi SEKARANG () untuk jeda yang akurat, jika tidak, ada kemungkinan buku kerja excel Anda dijeda hingga tengah malam. Namun, kita bisa keluar dari metode pause kapan saja dengan menekan tombol Esc atau Break Key.

Contoh # 2

Tunggu 10 Detik Setiap Loop Berjalan

Metode menunggu digunakan dengan baik dengan loop. Ada situasi di mana Anda mungkin perlu menunggu selama 10 detik setiap putaran waktu berjalan. Misalnya, lihat data di bawah ini.

Untuk menghitung Profit = (Penjualan - Biaya) Anda ingin membuat loop dan setelah setiap loop, Anda ingin menunggu 10 detik untuk memeriksa apakah hasilnya akurat atau tidak. Kode di bawah ini akan melakukannya.

Kode:

 Sub Wait_Example3 () Dim k As Integer For k = 2 to 9 Cells (k, 4) .Value = Cells (k, 2) - Cells (k, 3) Application.Tunggu (Now () + TimeValue ("00:00 : 10 ")) Berikutnya k Akhiri Sub 

Kode ini akan menghitung kolom keuntungan baris demi baris. Setelah menyelesaikan baris pertama, itu akan menunggu selama 10 detik sebelum menghitung baris berikutnya.

VBA Tidur vs VBA Tunggu

VBA TIDURVBA TUNGGU
Ini bukan fungsi built-in VBA, membutuhkan kode khusus untuk mengakses fungsi ini.Ini adalah fungsi built-in VBA, tidak memerlukan kode khusus untuk mengakses fungsi ini.
Tidur membutuhkan milidetik sebagai kerangka waktu.Menunggu membutuhkan kerangka waktu yang teratur.
Kami dapat menunda kode dalam milidetikKita hanya bisa menunda dalam hitungan detik.