Cara menelusuri spreadsheet di vba (dengan contoh)
Anda bisa menggunakan metode berikut untuk menavigasi lembar di buku kerja Excel menggunakan VBA:
Metode 1: Telusuri semua spreadsheet
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
Makro khusus ini menelusuri setiap lembar dalam buku kerja dan menetapkan nilai di sel A1 setiap lembar menjadi 100.
Metode 2: Telusuri semua lembar kerja, kecuali lembar kerja tertentu
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Makro khusus ini mengulang setiap lembar dalam buku kerja dan menetapkan nilai di sel A1 setiap lembar menjadi 100, kecuali untuk lembar yang disebut Sheet2 dan Sheet3 .
Contoh berikut memperlihatkan cara menggunakan masing-masing metode ini dalam praktik dengan buku kerja Excel yang berisi empat lembar kosong:
Contoh 1: Jelajahi semua lembar kerja
Kita bisa menggunakan makro berikut untuk mengatur nilai sel A1 pada setiap lembar di buku kerja kita agar sama dengan 100:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
Saat kita menjalankan makro ini, nilai sel A1 di setiap lembar buku kerja akan sama dengan 100:
Contoh 2: Telusuri semua lembar kerja, kecuali lembar kerja tertentu
Katakanlah kita ingin menelusuri setiap lembar kerja dan menetapkan nilai sel A1 di setiap lembar menjadi 100, kecuali untuk lembar yang disebut Sheet2 dan Sheet3 .
Kita dapat membuat makro berikut untuk melakukan ini:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case Is = "Sheet2", "Sheet3"
'Do not execute any code for these sheets
Case Else
ws.Range("A1").Value = 100
End Select
Next ws
End Sub
Saat kita menjalankan makro ini, kita akan melihat bahwa Sheet1 dan Sheet4 memiliki nilai 100 di sel A1 .
Namun, Sheet2 dan Sheet3 tidak akan memiliki nilai di sel A1 karena kita menggunakan fungsi Case untuk mengabaikan sheet berikut:
Perhatikan bahwa dalam contoh ini, kita telah memeriksa setiap lembar kerja dan menetapkan nilai sel sama dengan nilai tertentu, hanya demi kesederhanaan.
Namun, Anda dapat menggunakan sintaks serupa dengan pernyataan For Each untuk melakukan tugas yang jauh lebih rumit di setiap lembar jika Anda mau.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menghitung jumlah baris dalam jangkauan
VBA: Cara menghitung sel dengan teks tertentu
VBA: Cara menulis fungsi COUNTIF dan COUNTIFS