Bagaimana cara menggunakan VBA untuk Setiap Loop? (dengan Contoh Excel)

Excel VBA Untuk Setiap Loop

VBA Untuk Setiap Loop menelusuri semua koleksi objek atau item dan melakukan serangkaian aktivitas serupa. Ini akan mempertimbangkan semua objek tertentu yang tersedia dan melakukan aktivitas yang diinstruksikan di setiap objek.

Di VBA, adalah wajib untuk memahami loop. Sebuah loop memungkinkan Anda untuk melakukan jenis aktivitas yang sama untuk banyak sel atau objek di excel. Pada artikel hari ini, kita akan berkonsentrasi pada mekanisme For Each Loop.

Sintaksis

Untuk Setiap Loop dapat melakukan perulangan melalui semua kumpulan objek atau item. Grup tidak lain adalah "Semua buku kerja yang dibuka", "Semua lembar kerja di buku kerja", "Semua koleksi bentuk dan bagan di buku kerja".

Mari kita lihat sintaksnya.

Untuk Setiap Objek Dalam Koleksi Apa yang Harus Dilakukan? Objek Berikutnya

Misalnya, Anda memiliki 10 lembar di buku kerja Anda, dan Anda ingin menyembunyikan semua lembar kerja kecuali yang Anda masuki. Bisakah Anda menyembunyikannya secara manual? Bisa, tetapi bagaimana jika Anda memiliki 100 lembar seperti itu? Bukankah itu tugas yang membosankan dan memakan waktu? Anda dapat melakukan ini menggunakan untuk setiap loop.

Bagaimana cara menggunakan For Each Loop di VBA? (Contoh)

Contoh # 1 - Sisipkan Teks yang Sama di Semua Lembar

Kami akan melihat bagaimana menggunakan UNTUK SETIAP di VBA dengan contoh sederhana. Asumsikan Anda memiliki 5 lembar kerja dalam satu buku kerja, dan Anda ingin menyisipkan kata "Halo" di semua lembar kerja di sel A1.

Kita dapat melakukan ini dengan FOR SETIAP LOOP. Satu hal yang perlu Anda ingat di sini adalah kami melakukan aktivitas ini di setiap lembar kerja, bukan di lembar kerja yang sama. Ikuti langkah-langkah di bawah ini untuk menulis kode VBA.

Langkah 1: Mulai makro excel.

Kode:

Sub Untuk_Each_Example1 () End Sub

Langkah 2: Karena kita mengacu pada lembar kerja, nyatakan variabel sebagai "Lembar Kerja".

Kode:

Sub For_Each_Example1 () Dim Ws As Worksheet End Sub

Langkah 3: Sekarang, dengan menggunakan UNTUK SETIAP LOOP, kita perlu merujuk setiap lembar kerja di buku kerja yang aktif.

Kode:

Sub For_Each_Example1 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Next Ws End Sub

Langkah 4: Sekarang, tulis apa yang ingin kita lakukan di setiap lembar kerja. Di setiap lembar kerja, kita perlu meletakkan kata "Halo" di sel A1.

Kode:

Sub For_Each_Example1 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Range ("A1") Value = "Hello" Next Ws End Sub

Langkah 5: Sekarang jalankan kode ini secara manual melalui opsi atau tekan tombol pintas F5. Tidak peduli berapa banyak lembar yang Anda miliki; itu akan memasukkan Kata "Halo" di semua lembar kerja.

Contoh # 2 - Sembunyikan Semua Lembar

Seperti yang diceritakan sebelumnya di posting, bagaimana jika Anda memiliki ratusan lembar untuk disembunyikan kecuali yang Anda masuk. Menggunakan Untuk setiap loop, kita dapat menyembunyikan semua lembar di excel.

Langkah 1: Mulai makro dengan nama Anda.

Kode:

Sub Untuk_Each_Example2 () End Sub

Langkah 2: Deklarasikan variabel sebagai " Ws".

Kode:

Sub For_Each_Example2 () Dim Ws As Worksheet End Sub

Langkah 3: Sekarang, di setiap lembar kerja, yang perlu Anda lakukan adalah menyembunyikan lembar.

Kode:

Sub For_Each_Example2 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws End Sub

Langkah 4: Tetapi jika Anda menjalankan kode di atas, itu akan mencoba menyembunyikan semua lembar, tetapi excel membutuhkan setidaknya satu lembar yang terlihat. Jadi kita perlu memberi tahu lembar mana yang tidak disembunyikan.

Kode:

Sub For_Each_Example2 () Redupkan W Sebagai Lembar Kerja Untuk Setiap W Dalam ActiveWorkbook.Worksheets Jika Ws.Name "Lembar Utama" Kemudian Ws.Visible = xlSheetVeryHidden End Jika Berikutnya Ws End Sub

The simbol operator berarti tidak sama dalam VBA .

So code says when you are looping through all the worksheets in the active workbook, hide only if the sheet name is not equal to the sheet name of Main Sheet.

This can be done by using the IF statement in VBA. Write the code as IF Ws.Name “Main Sheet” Then hide or if it is equal to the sheet name “Main Sheet,” then don’t hide.

Step 5: Now run the code using the F5 key or manually. Then, it will hide all the worksheets except the one named “Main Sheet.”

Example #3 - Unhide All the Sheets

We have seen how to hide all sheets except the one we are in. Similarly, we can unhide all the worksheets as well.

We need to change the code from xlSheetVeryHidden to xlSheetVisible.

Code:

Sub For_Each_Example3() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVisible Next Ws End Sub

Here we don’t need the IF condition because we are unhiding all the sheets. If you don’t want to unhide any specific sheet, then you can use the IF condition and supply the sheet name.

Example #4 - Protect and UnProtect All the Sheets

Protect All Sheets: We can protect all the sheets in the workbook with just a piece of code. All the principle is the same only thing we need to do here is instead of Ws. Visible, we need to put the code Ws. Protect and type the password.

Code:

Sub For_Each_Example4() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Protect Password:="Excel@2019" Next Ws End Sub

Buka Proteksi Semua Lembar: Pada catatan serupa, menggunakan VBA, kita juga bisa membuka proteksi semua lembar yang diproteksi di buku kerja. Kita perlu meletakkan kata Unprotect dan password.

Kode:

Sub For_Each_Example6 () Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 2019" Next Ws End Sub

Hal-hal untuk diingat

  • Masing-masing untuk koleksi objek.
  • Ini akan mempertimbangkan semua objek yang ditentukan dalam buku kerja yang ditentukan.
  • Saat mendeklarasikan variabel, kita perlu ke objek mana yang kita rujuk-misalnya, Lembar Kerja, Buku Kerja, Bagan, dll.

Artikel yang menarik...