Bagaimana cara menggunakan do while loop di vba?
VBA Do while adalah perulangan di mana Anda perlu menentukan suatu kondisi dan kondisi tersebut harus tetap benar agar perulangan dapat dieksekusi. Dengan kata sederhana, pertama-tama ia memeriksa apakah kondisi yang Anda tentukan benar atau tidak dan jika kondisi itu benar, ia akan mengeksekusi perulangan, jika tidak maka tidak akan ada apa-apa.
Dalam setiap iterasi, ia menguji kondisi dan baru kemudian mengeksekusi instruksi. Bayangkan Anda ingin menambahkan lembar kerja di Excel tetapi jumlah lembar kerja penuh adalah 12 atau kurang. Dalam hal ini, Anda dapat menggunakan perulangan do- while untuk menulis kode ini.
Sintaksis
Berikut adalah sintaks VBA untuk setiap loop berikutnya.
Do While Condition [statements] Loop
- Kondisi: Ini adalah kondisi yang Anda tentukan, dan kondisi ini harus benar untuk menjalankan perulangan.
- Pernyataan : Baris kode yang Anda inginkan agar loop Do While mengeksekusi kondisinya adalah benar.
- Loop : Ini adalah pernyataan akhir dari iterasi loop dan memberitahu VBA untuk kembali menguji kondisinya lagi.
Contoh untuk memahami perulangan DO While
Untuk memahami Do While Loop, mari tulis kode untuk menambahkan lembar kerja ke buku kerja ketika jumlah lembar kerja kurang dari dua belas. Anda tidak perlu memberi tahu VBA berapa lembar yang harus ditambahkan dan Anda akan selalu memiliki total 12 lembar setiap kali Anda menjalankan kode ini.
Gunakan langkah-langkah berikut:
- Pertama-tama, Anda perlu mengetikkan “Do While” pada keyboard.
- Selanjutnya, Anda perlu menulis kondisi yang dapat memeriksa apakah jumlah lembar kerja di buku kerja kurang dari dua belas.
- Untuk melakukan ini, Anda perlu menggunakan kode di bawah ini, yang menghitung jumlah total lembar kerja dan kemudian membandingkannya dengan angka dua belas.
- Selanjutnya, Anda perlu menulis kode untuk menambahkan lembar kerja. Kode ini akan berjalan ketika kondisi yang Anda tentukan benar.
- Dan terakhir ketikkan kata kunci “Loop” untuk melengkapi kodenya.
Berikut ini kode lengkap yang baru saja Anda tulis:
Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub
Sekarang izinkan saya menjelaskan cara kerja kode ini: Kondisi yang Anda tentukan memeriksa jumlah total lembar kerja di buku kerja, dan kemudian Anda memiliki operator kurang dari yang memeriksa jumlah lembar kerja menjadi dua belas.
Ketika jumlah lembar kerja kurang dari dua belas, perulangan akan terus berjalan dan terus menambahkan lembar kerja baru, namun begitu jumlah lembar kerja mencapai dua belas, perulangan akan berhenti.
Sederhananya, perulangan akan terus berjalan selama jumlah lembar kerja kurang dari dua belas.
Begini masalahnya, dengan kode yang baru saja Anda tulis Anda tidak perlu menentukan jumlah lembar kerja yang ingin Anda tambahkan, tetapi jika Anda melanjutkan ke loop berikutnya Anda perlu menentukan jumlah perhitungan lembar kerja yang ingin Anda tambahkan.
Buat lingkaran untuk
Do Loop While merupakan versi lanjutan dari Do While Loop karena cara kerjanya sama namun terdapat sedikit perbedaan saat menguji kondisinya.
Dalam Do Loop While menjalankan satu iterasi perulangan sebelum menguji kondisi yang Anda tentukan dan jika kondisi benar maka perulangan akan terus berlanjut.
Katakanlah Anda ingin menulis beberapa kode untuk memeriksa kata sandi untuk menjalankan beberapa kode dan melanjutkan perulangan ketika kata sandi salah (kita melihatnya dalam contoh).
Sintaksis
Berikut adalah sintaks VBA Do Loop While.
- Do: ini adalah kata kunci awal dari perulangan Do While.
- Pernyataan: Ini adalah baris kode yang ingin Anda jalankan dalam loop.
- Loop While: Ini adalah kata kunci untuk melanjutkan loop dan menguji kondisi yang Anda tentukan.
- Kondisi: Ini adalah kondisi yang ingin Anda uji sebelum perulangan memulai iterasi kedua dan melanjutkan perulangan.
Seperti yang Anda lihat dalam sintaks Do Loop While, pertama-tama ia akan mengeksekusi pernyataan satu kali, kemudian ia akan menuju ke kondisi dan mengujinya, dan jika kondisi itu benar, ia akan memulai perulangan dan melanjutkannya sementara kondisinya adalah BENAR.
Contoh untuk memahami perulangan DO while
Untuk memahami perulangan do while, mari tulis beberapa kode untuk menampilkan kotak input dan minta pengguna memasukkan kata sandi.
Kotak masukan ini akan terus menunjukkan dengan jelas bahwa kata sandi yang dimasukkan oleh pengguna salah hingga lima kali percobaan dan setelah itu kotak masukan akan hilang tanpa melakukan prosedur.
- Pertama, deklarasikan dua variabel yang Anda perlukan untuk menyimpan kata sandi dan upaya penghitung.
- Setelah itu ketikkan kata kunci “Lakukan”. Di sini Anda tidak perlu mendefinisikan kondisi terlebih dahulu seperti yang Anda lihat di sintaks.
- Selanjutnya, Anda perlu menulis sebaris kode untuk menampilkan kotak input yang meminta pengguna memasukkan kata sandi.
- Dari sini Anda perlu menyetel penghitung yang dapat menghitung hingga lima (bertambah dengan setiap iterasi loop).
- Sekarang ketikkan kata kunci “Loop While” dan atur dua kondisi yang dapat memeriksa nilai yang dimasukkan oleh pengguna dan di kotak input dan dapat menguji nilai penghitung jika kurang dari 5.
- Terakhir, tulis kode yang ingin Anda jalankan. Disini saya menggunakan pernyataan IF yang akan menampilkan kotak pesan jika password yang dimasukkan pengguna benar.
Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub
Izinkan saya menjelaskan kode ini kepada Anda.
- Pada bagian pertama kode ini Anda memiliki perulangan do while yang akan menampilkan kotak masukan kepada pengguna dan meminta kata sandi kepada mereka .
- Dan jika kata sandinya salah, loop akan terus berjalan hingga pengguna memasukkan kata sandi yang benar.
- Namun saat Anda menggunakan penghitung untuk menghitung iterasi perulangan dan setelah penghitung ini mencapai 5, perulangan akan berhenti .