Fungsi Tidur VBA Excel untuk Menjeda Kode Makro Anda

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 untuk 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? Kita dapat menghentikan sementara kode prosedur untuk beberapa waktu yang ditentukan oleh pengguna, dan setelah itu kita dapat melanjutkan program. Kita bisa melakukan ini di VBA dengan menggunakan fungsi SLEEP.

Apa Fungsi Tidur VBA?

TIDUR, seperti namanya sendiri, "tidur untuk beberapa waktu", "istirahat untuk beberapa waktu", "jeda untuk beberapa waktu," waktu istirahat untuk beberapa waktu, "dll … Fungsi tidur memungkinkan pengguna untuk menjeda kode makro kami selama milidetik . Dengan menggunakan ini, kita dapat menunda proses kode makro.

Jika Anda mengira kami memiliki fungsi bawaan yang disebut SLEEP, maka Anda salah karena, di VBA, tidak ada fungsi seperti itu. Sebaliknya, kami memiliki fungsi yang disebut Tidur sebagai fungsi jendela. Dengan memasukkan sekumpulan 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 dimulainya 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 #Akhir 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 menulis kode, izinkan saya memberi tahu Anda lebih banyak tentang fungsi tidur. Ini menunda proses dalam milidetik. Jadi 1 detik sama dengan 1000 milidetik, jika Anda ingin berhenti sebentar selama 10 detik, itu harus 10000 milidetik.

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, ini menghentikan kode dalam milidetik, jadi berhenti selama 10 detik. Kita perlu menggunakan 10.000 milidetik.

Kode:

Sub Sleep_Example1 () Redupkan StartTime As 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 Sebagai String Dim EndTime As String StartTime = Time MsgBox StartTime Tidur (10000) EndTime = Time MsgBox EndTime End Sub

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

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

Setelah 10 detik, itu akan mulai melanjutkan kode sehingga akan menunjukkan waktu berakhir, yaitu, setelah menunggu 10 detik, jam berapa sekarang.

Sekarang Anda dapat melihat makro dimulai pada 10:54:14 dan berakhir pada 10:54:24, yaitu, Persis perbedaan 10 detik 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 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 Sebagai 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 kunci pelarian tidak akan berfungsi.

Artikel yang menarik...