Fungsi Tidur VBA

Fungsi Tidur VBA Excel

Fungsi VBA Sleep adalah fungsi windows yang ada di bawah file DLL windows yang digunakan untuk menghentikan atau menjeda prosedur makro agar tidak berjalan selama jangka waktu tertentu setelah jumlah tertentu kita dapat melanjutkan program.

Ada situasi di mana kami perlu menghentikan proses yang berjalan makro untuk menyelesaikan kumpulan tugas lainnya. Kumpulan tugas lainnya dapat menjadi bagian dari pengkodean kami atau bagian dari prosedur makro lainnya atau dapat menjadi masukan untuk makro excel saat ini. Bagaimana Anda bisa menghentikan sementara program saat sedang berjalan? Kami dapat menghentikan sementara kode prosedur untuk beberapa waktu yang ditentukan oleh pengguna dan setelah itu kami dapat melanjutkan program. Kita bisa melakukan ini di VBA dengan menggunakan fungsi SLEEP.

Apa Fungsi Tidur VBA?

SLEEP karena namanya sendiri mengatakan "sleep for some time", "rest for some time", "pause for time", time off for some time "dll. Fungsi Sleep memungkinkan pengguna untuk menghentikan sementara kode makro kami selama milidetik. Menggunakan ini kita dapat menunda proses kode makro.

Jika Anda mengira kami memiliki fungsi built-in yang disebut SLEEP maka Anda salah karena di VBA tidak ada fungsi seperti itu, melainkan kami memiliki fungsi yang disebut fungsi Sleep as a windows. Dengan memasukkan satu set kode khusus, kita sebenarnya dapat memanggil fungsi ini di VBA. Sebenarnya, ini adalah fungsi yang ada di dalam file DLL Windows, jadi kita perlu mendeklarasikan nomenklatur API sebelum memulai subrutin di vba.

Di bawah ini adalah kode VBA.

Kode:

# If VBA7 Lalu Deklarasikan Publik PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'Untuk versi 64-Bit dari Excel # Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)' Untuk versi 32-Bit dari Excel # Akhiri Jika 

Salin di atas dan tempelkan di modul Anda sebelum Anda mulai menulis kode makro. Itu harus disisipkan seperti ini di modul Anda.

Contoh

Sebelum saya menunjukkan cara penulisan kode, izinkan saya memberi tahu Anda lebih banyak tentang fungsi tidur. Ini menunda proses dalam milidetik. Jadi 1 detik sama dengan 1000 milidetik, jika ingin jeda selama 10 detik harusnya 10000 milidetik.

Anda dapat mendownload Template VBA Sleep Excel ini di sini - Template VBA Sleep Excel

Contoh 1

Setelah kode API ditempelkan sebelum dimulainya prosedur Sub, buat nama makro.

Kode:

# Sub Sleep_Example1 () End Sub 

Deklarasikan dua variabel sebagai string.

Kode:

 Redupkan StartTime Sebagai String Redupkan EndTime Sebagai String 

Untuk variabel StartTime tetapkan nilai fungsi TIME. Catatan: TIME dalam fungsi excel mengembalikan waktu saat ini.

Kode:

StartTime = Waktu

Sekarang kita akan menampilkan pesan ini di kotak pesan VBA.

Kode:

StartTime = Time MsgBox StartTime

Sekarang kita akan menghentikan kode selama 10 detik menggunakan fungsi tidur. Seperti yang saya katakan, itu menghentikan kode dalam milidetik sehingga untuk berhenti selama 10 detik kita perlu menggunakan 10.000 milidetik.

Kode:

 Sub Sleep_Example1 () Redupkan StartTime Sebagai String Redup EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) End Sub 

Sekarang gunakan variabel kedua EndTime dan tetapkan waktu saat ini.

Kode:

 Sub Sleep_Example1 () Redupkan StartTime As String Dim EndTime As String StartTime = Time MsgBox StartTime Sleep (10000) EndTime = Time MsgBox EndTime End Sub 

Sekarang dua variabel StartTime dan EndTime akan menampung waktu mulai dan waktu berakhir makro. Jalankan makro ini, pertama kita akan melihat waktu mulai makro yaitu waktu saat ini di sistem Anda.

Klik OK, itu akan tidur selama 10 detik. Anda dapat melihat simbol buffer.

Setelah 10 detik itu akan mulai melanjutkan kode jadi, itu akan menunjukkan waktu berakhir yaitu setelah menunggu 10 detik apa waktu sekarang.

Sekarang Anda dapat melihat makro dimulai pada 10:54:14 dan berakhir pada 10:54:24 yaitu perbedaan 10 detik persis di sana. Dalam 10 detik tersebut, VBA menghentikan sementara kode yang sedang berjalan.

Contoh # 2 - Fungsi Tidur dalam Loop

Tidur paling baik digunakan dengan loop di VBA. Misalnya, saya ingin memasukkan nomor seri dari 1 hingga 10 menggunakan Do while loop di VBA.

Setelah memasukkan satu nomor, kode saya harus menunggu selama 3 detik, jadi ketika loop berjalan selama 10 kali, totalnya harus 30 detik.

Kode:

 Sub Sleep_Example2 () Dim k As Integer k = 1 Do While k <= 10 Cells (k, 1]. Value = kk = k + 1 Sleep (3000) '1000 milidetik adalah 1 detik jadi 3000 sama dengan 3 detik Loop End Sub 

Jalankan kode ini dan Anda harus menunggu minimal 30 detik untuk menyelesaikan prosesnya.

Untuk melacak waktu yang tepat gunakan kode di bawah ini.

Kode:

 Sub Sleep_Example2 () Dim k As Integer Redup StartTime As String Dim EndTime As String StartTime = Time MsgBox "Kode Anda Dimulai pada" & Waktu Mulai k = 1 Lakukan Saat k <= 10 Sel (k, 1). Nilai = kk = k + 1 Tidur (3000) '1000 miliseonds adalah 1 detik jadi 3000 sama dengan 3 detik Loop EndTime = Time MsgBox "Kode Anda Berakhir pada" & EndTime End Sub 

Kode ini akan menampilkan 2 kotak pesan, yang pertama akan menunjukkan waktu mulai dan yang kedua akan menunjukkan waktu berakhir.

Catatan: Saat menjalankan kode ini, Anda tidak dapat menggunakan excel, bahkan tombol escape tidak akan berfungsi.