Vba'da elektronik tablolara nasıl gözatılır (örneklerle)
VBA kullanarak bir Excel çalışma kitabındaki sayfalarda gezinmek için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Tüm e-tabloları gözden geçirin
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
End Sub
Bu özel makro, çalışma kitabındaki her sayfayı inceler ve her sayfanın A1 hücresindeki değeri 100 olarak ayarlar.
Yöntem 2: Belirli olanlar hariç tüm çalışma sayfalarına göz atın
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
Bu özel makro, çalışma kitabındaki her sayfada döngü yapar ve Sayfa2 ve Sayfa3 adı verilen sayfalar hariç , her sayfanın A1 hücresindeki değeri 100 olarak ayarlar.
Aşağıdaki örnekler, dört boş sayfa içeren bir Excel çalışma kitabıyla bu yöntemlerin her birinin pratikte nasıl kullanılacağını gösterir:
Örnek 1: Tüm çalışma sayfalarına göz atın
Çalışma kitabımızın her sayfasındaki A1 hücresinin değerini 100’e eşitlemek için aşağıdaki makroyu kullanabiliriz:
SubLoopSheets ()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = 100
Next ws
Bu makroyu çalıştırdığımızda çalışma kitabının her sayfasındaki A1 hücresinin değeri 100 olacaktır:
Örnek 2: Belirli olanlar hariç tüm çalışma sayfalarına göz atın
Diyelim ki her çalışma sayfasını gözden geçirmek ve Sheet2 ve Sheet3 adlı sayfalar hariç her sayfadaki A1 hücresinin değerini 100 olarak ayarlamak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
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
Bu makroyu çalıştırdığımızda A1 hücresinde Sheet1 ve Sheet4’ün 100 değerine sahip olduğunu göreceğiz.
Ancak, bu sayfaları yok saymak için Case işlevini kullandığımızdan, Sayfa2 ve Sayfa3’ün A1 hücresinde hiçbir değeri olmayacaktır:
Bu örneklerde, basitlik adına her çalışma sayfasını tek tek incelediğimizi ve bir hücrenin değerini belirli bir değere eşitlediğimizi unutmayın.
Ancak isterseniz her sayfada çok daha karmaşık görevleri gerçekleştirmek için For Every deyimiyle benzer sözdizimini kullanabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: Belirli bir metin içeren hücreler nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?