Farih.co.id
Home Produktivitas Cara Menggunakan Fungsi Loop di Excel VBA

Cara Menggunakan Fungsi Loop di Excel VBA

for each loop in vba

Loops dan VBA berjalan bersamaan, dan untuk alasan yang bagus juga. Saat berurusan dengan objek Microsoft Office seperti buku kerja, lembar kerja, dan rentang, pengulangan dapat membantu Anda beralih di antara masing-masing objek dengan relatif mudah.


Meskipun kurang lebih semua loop VBA bekerja dengan baik dengan objek, loop “untuk setiap” adalah salah satu opsi terbaik untuk bekerja dengan koleksi objek. Jika Anda baru di Excel VBA dan ingin menguasai untuk setiap loop, Anda bisa belajar dari beberapa contoh ini dengan cepat. Inilah semua yang perlu Anda ketahui tentang loop klasik ini.


Untuk Sintaks Setiap Loop

Sintaks for each loop sangat mirip dengan for loop biasa di Excel VBA. Berikut sintaksnya:

 For each variable_name in object_collection

[statement]

[statement]

[statement]

Next variable_name

Perulangan dimulai dengan kata kunci “untuk setiap”; Anda dapat menggunakan nama variabel apa pun, diikuti dengan koleksi objek. Objek di dalam untuk setiap loop bisa berupa sel, rentang, lembar, dan bahkan buku kerja. Begitulah keindahan dari lingkaran ini; itu memberi Anda fleksibilitas untuk bekerja dengan koleksi Excel yang berbeda.

Loop menggilir setiap nilai koleksi dan menyimpan referensi dalam nama variabel yang ditentukan. Setelah eksekusi, VBA mengeksekusi pernyataan yang tersimpan di dalam loop dan berpindah ke objek berikutnya dalam koleksi (file Berikutnya kata kunci sangat membantu di sini). Mari kita pahami struktur kode dengan contoh dasar.

Cara Menggunakan Untuk Setiap Loop di Excel VBA

Misalkan Anda ingin mencetak angka di sel A1 hingga A10. Pendekatan terbaik adalah menggunakan for each loop dengan fungsi range dan membiarkan kode melakukan yang diperlukan. Inilah cara Anda dapat melakukan tugas sederhana ini:

  1. Buka editor kode VBA dengan menekan Alt + F11.
  2. Masukkan modul dengan mengklik Modul pilihan dalam Menyisipkan tab.
    Sub-menu drop-down di editor kode Excel VBA
  3. Buat sub-rutin menggunakan perintah sub() di jendela modul editor kode. Pastikan Anda menetapkan nama yang bermakna untuk sub-rutin tersebut. Untuk contoh ini, Anda dapat menggunakan nama untuk_setiap_loop.

Sekarang dasar-dasarnya sudah disingkirkan, saatnya untuk mulai menulis kode. Di dalam sub-rutin, ketikkan perintah berikut:

 Dim cell as range

For each cell in Sheets("Sheet1").Range("A1:A10")

cell.value = 10

Next cell

Ketika kode dijalankan, file C variabel akan menyimpan nilai A1. Selanjutnya, saat berpindah ke pernyataan di dalam loop, ia mengevaluasi perintah dan memasukkan nilai 10 dalam sel yang ditentukan, yaitu sel A1.

Terakhir, saat berpindah ke kata kunci Berikutnya, ia berpindah ke nilai berikutnya, yaitu sel A2. Loop berjalan hingga mencapai sel A10. Ini adalah hasil akhir:

Lembar Excel dengan keluaran kolom

Menggunakan Loop Dengan Objek: Sel, Lembar, dan Buku Kerja

Excel memiliki tiga tipe objek utama yang Anda gunakan secara rutin. Ini adalah sel, lembar, dan buku kerja. Inilah cara Anda dapat menggunakan loop dengan ketiga jenis objek.

Bekerja Dengan Sel dan Loop Bersama

Misalkan Anda ingin menambahkan nilai dan beberapa kondisi pemformatan ke rentang sel di Sheet1. Sebagai langkah pertama, Anda perlu menentukan kondisi di dalam loop, diikuti dengan perintah pemformatan.

Ketik kode berikut dalam sub-rutin.

 Sub for_each_loop()

Dim c As Range

For Each c In Sheets("Sheet1").Range("A1:A10")

With c

.Value = 10

.Font.Color = vbRed

.Font.Bold = True

.Font.Strikethrough = True

End With

Next c

End Sub

Cuplikan kode VBA di dalam editor dan output excel

Itu dengan function berguna saat melakukan banyak fungsi dengan satu objek tertentu. Karena Anda ingin melakukan serangkaian tugas dengan variabel c, Anda dapat menggabungkan semuanya menggunakan fungsi with..end with.

Loop menyamakan nilai c dengan setiap nilai sel dan memasukkan nilainya sebagai 10. Selain itu, ia mengubah warna sel menjadi merah, menebalkan nilainya, dan mencoretnya. Setelah menyelesaikan semua langkah, ia berpindah ke nilai yang ditentukan berikutnya dalam rentang.

Menggunakan Loop untuk Mengontrol Lembar

Mirip dengan contoh di atas, Anda dapat menggunakan for each loop untuk mengontrol sheet. Bagaimana kalau mengubah nama Sheet1 menjadi Sheet3 menggunakan VBA?

Anda dapat menggunakan kode berikut untuk mengganti nama lembar kerja yang ada di Excel menggunakan VBA:

 Sub for_each_loop_sheets()

For Each sht In ThisWorkbook.Sheets

If sht.Name = "Sheet1" Then

sht.Name = "Sheet3"

End If

Next sht

End Sub

Cuplikan kode VBA di dalam editor pengkodean

Kode melewati setiap lembar dalam buku kerja dan memeriksa nama setiap lembar. Jika bertemu dengan nama Sheet1, itu mengubahnya menjadi Sheet3. Itu berkembang melalui lembar yang tersisa, jika ada, di dalam buku kerja. Setelah eksekusi kode mencapai lembar terakhir, ia keluar dari loop dan subrutin.

Di antara beberapa kegunaan umum lainnya, Anda dapat menggabungkan beberapa lembar kerja menggunakan VBA dan memperbarui konten dalam satu lembar menggunakan loop.

Beralih Melalui Buku Kerja Dengan Loop

Terakhir, Anda dapat menggunakan for each loop untuk beralih melalui buku kerja yang berbeda dan melakukan tugas tertentu. Mari kita tunjukkan fungsi ini dengan sebuah contoh.

Anda dapat menggunakan perintah VBA untuk menambahkan tiga buku kerja baru dan menutup semua buku kerja yang terbuka secara bersamaan. Inilah cara Anda melakukannya:

 Sub loop_wrkbook()

Dim wrkbook as workbook

Workbooks.Add

Workbooks.Add

Workbooks.Add

For Each wrkbook In Workbooks

wrkbook.Close

Next wrkbook

End Sub

Cuplikan kode VBA di dalam editor

Kode di atas juga akan menutup buku kerja makro Anda; pastikan Anda telah menyimpan kode Anda sebelum menjalankan kode ini.

Karena loop memiliki banyak kegunaan, Anda juga dapat menggabungkan data dari beberapa buku kerja menjadi satu buku kerja.

Menggunakan Pernyataan IF Bersarang Dengan Loop

Seperti contoh di atas, Anda dapat menggunakan pernyataan IF di dalam loop untuk memeriksa kondisi tertentu. Mari ubah warna latar belakang sel berdasarkan nilai sel.

Ada beberapa angka acak di sel A1:A20. Anda dapat menulis satu lingkaran untuk menggilir setiap sel yang diberikan dalam rentang; jika nilai sel kurang dari 10, warna sel akan berubah menjadi merah. Jika nilai sel melebihi 10, seharusnya berubah menjadi hijau. Gunakan kode berikut untuk tujuan ini:

 Sub loop_w_if()

Dim c As Range

For Each c In Sheets("Sheet4").Range("A1:A20")

If c.Value < 10 Then

c.Interior.ColorIndex = 3

Else: c.Interior.ColorIndex = 4

End If

Next c

End Sub

Seperti inilah tampilan outputnya:

Kode dengan penggunaan untuk setiap loop dan pernyataan IF di Excel VBA

Menggunakan Loop di Excel VBA

Excel VBA tidak terbatas hanya untuk setiap loop. Ada berbagai loop bermanfaat yang memungkinkan Anda melakukan berbagai fungsi dengan mudah. Tawaran perpisahan untuk tugas-tugas manual yang biasa-biasa saja, karena loop VBA seperti loop for, lakukan while, dan lakukan sampai loop masuk untuk membuat hidup Anda lebih mudah.

Comment
Share:

Leave a Reply

Your email address will not be published. Required fields are marked *

Ad