VBA Jeda

Jeda Kode VBA Dari Berjalan

VBA Pause digunakan untuk menjeda kode agar tidak mengeksekusinya selama jangka waktu tertentu dan untuk menjeda kode di VBA kita menggunakan metode application.wait.

Saat kami membangun proyek VBA besar setelah melakukan sesuatu, kami mungkin perlu menunggu beberapa saat untuk melakukan tugas lain. Dalam skenario seperti itu, bagaimana kita menghentikan sementara kode makro untuk melakukan tugas kita? Kita dapat menjeda kode VBA untuk jangka waktu tertentu dengan menggunakan dua fungsi dan fungsi tersebut adalah "Tunggu" & "Tidur".

Bagaimana cara Jeda Kode menggunakan Metode Tunggu?

"Tunggu" adalah fungsi yang kami gunakan di VBA untuk menahan makro yang berjalan selama jangka waktu tertentu. Dengan menerapkan fungsi ini kita perlu menyebutkan sampai jam berapa kode kita harus menunggu.

Anda dapat mengunduh Template Excel Jeda VBA ini di sini - Template Excel Jeda VBA

Misalnya, jika Anda menjalankan kode pada 13:00:00 jika Anda menyediakan waktu sebagai "13:15:00" maka makro akan berjalan selama 15 menit.

Sekarang, lihat argumen fungsi WAIT di VBA.

Dalam argumen waktu kita perlu menyebutkan jam berapa kode kita harus berhenti atau menunggu.

Misalnya, lihat kode VBA di bawah ini.

Kode:

 Sub Pause_Example1 () Range ("A1") Value = "Hello" Range ("A2"). Value = "Welcome" Application.Tunggu ("13:15:00") Range ("A3"). Value = " Untuk VBA "End Sub 

Ingat saat menjalankan kode ini waktu sistem saya adalah 13:00:00, segera setelah saya menjalankan kode itu akan mengeksekusi dua baris pertama yaitu

Rentang ("A1"). Value = "Halo” & Rentang ("A2"). Value = "Selamat Datang"

Tetapi jika Anda melihat baris berikutnya dikatakan Application.Wait ("13:15:00"), jadi setelah menjalankan tugas baris tersebut makro saya akan berhenti selama 15 menit yaitu dari 13:00:00 itu akan menunggu hingga sistem saya waktu mencapai 13:15:01.

Setelah waktu sistem saya mencapai waktu itu, baris kode yang tersisa akan dieksekusi.

Rentang ("A3"). Nilai = "Ke VBA"

Namun, ini bukan cara terbaik untuk mempraktikkan kode jeda, katakanlah Anda menjalankan kode pada waktu yang berbeda, maka kita perlu menggunakan fungsi VBA SEKARANG dengan fungsi NILAI WAKTU.

Sekarang fungsi mengembalikan tanggal & waktu saat ini sesuai sistem yang sedang kami kerjakan.

Fungsi Nilai WAKTU menahan waktu dari 00:00:00 hingga 23:59:29.

Ok, asumsikan kita perlu menghentikan sementara kode selama 10 menit setiap kali kita menjalankan kode, maka kita dapat menggunakan kode di bawah ini.

Kode:

 Sub Pause_Example1 () Range ("A1") Value = "Hello" Range ("A2") Value = "Welcome" Application.Tunggu (Sekarang () + TimeValue ("00:00:10")) Range (" A3 "). Nilai =" Ke VBA "End Sub 

Ini mirip dengan kode sebelumnya tetapi satu-satunya perbedaan adalah kita telah menambahkan fungsi NILAI SEKARANG & WAKTU.

Setiap kali kami menjalankan kode ini, itu akan menahan atau menghentikan sementara eksekusi selama 10 menit.

Bagaimana cara Jeda Kode VBA menggunakan Metode Tidur?

Tidur adalah fungsi yang rumit di VBA karena ini bukan fungsi bawaan. Karena ini bukan built-in untuk membuatnya tersedia untuk digunakan, kita perlu menambahkan kode di bawah ini ke bagian atas modul kita.

Kode:

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

Anda hanya perlu menyalin kode di atas dan menempelkannya di bagian atas modul.

Alasan mengapa kita perlu menambahkan kode di atas karena SLEEP adalah fungsi VBA yang disajikan dalam file DLL Windows, jadi kita perlu mendeklarasikan nomenklatur sebelum kita memulai subprocedure.

Ok, mari kita lihat contoh fungsi SLEEP sekarang.

Kode:

 Sub Pause_Example2 () Redupkan StartTime Sebagai String Redup EndTime As String StartTime = Time MsgBox StartTime Tidur (10000) EndTime = Time MsgBox EndTime End Sub 

Pertama, kami telah mendeklarasikan dua variabel sebagai String.

 Redupkan StartTime Sebagai String Redupkan EndTime Sebagai String 

Kemudian kami telah menetapkan fungsi excel TIME ke variabel StartTime. Fungsi TIME mengembalikan waktu saat ini sesuai sistem.

StartTime = Waktu

Kemudian kami telah menetapkan hal yang sama untuk ditampilkan di kotak pesan.

Waktu Mulai MsgBox

Lalu saya telah menerapkan fungsi SLEEP sebagai Sleep (10000).

Di sini 10000 adalah milidetik yang sama dengan 10 detik di VBA.

Kemudian, akhirnya, saya telah menetapkan satu lagi fungsi TIME ke variabel EndTime .

Sekarang lagi saya telah menulis kode untuk menunjukkan waktu.

EndTime = Waktu

Ini akan menunjukkan perbedaan antara waktu mulai dan waktu berakhir.

Sekarang saya akan menjalankan kode dan melihat apa waktu mulai.

Ketika saya mengeksekusi kode, waktu sistem saya 13:40:48 dan sekarang kode saya akan tidur selama 10 detik. Pada akhirnya, waktu saya adalah sebagai berikut.

Jadi, seperti ini, kita dapat menghentikan sementara kode agar tidak mengeksekusinya selama jangka waktu tertentu.