Vba: bir çalışma kitabındaki sayfaların sayısı nasıl sayılır?
Excel’de bir çalışma kitabındaki sayfaların sayısını saymak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Etkin çalışma kitabındaki sayfa sayısını sayın
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
Yöntem 2: açık bir çalışma kitabındaki sayfa sayısını sayın
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
Yöntem 3: Kapalı bir klasördeki sayfa sayısını sayın
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
Aşağıdaki örnekler bu yöntemlerin her birinin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Etkin bir çalışma kitabındaki sayfa sayısını sayın
Diyelim ki aşağıdaki Excel çalışma kitabını açtık ve onu görüntülüyoruz:
Bu çalışma kitabındaki toplam sayfa sayısını saymak ve sayıyı A1 hücresinde görüntülemek için aşağıdaki makroyu kullanabiliriz:
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
A1 hücresinin 6 değerini içerdiğine dikkat edin.
Bu bize bu çalışma kitabında 6 sayfa olduğunu söylüyor.
Örnek 2: Açık bir ciltleyicideki sayfa sayısını sayın
Diyelim ki my_data.xlsx adında iki sayfası açık bir Excel çalışma kitabımız var ama şu anda onu görüntülemiyoruz.
Bu çalışma kitabındaki toplam sayfa sayısını saymak ve sayıyı etkin çalışma kitabının A1 hücresinde görüntülemek için aşağıdaki makroyu kullanabiliriz:
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
A1 hücresinin 2 değerini içerdiğine dikkat edin.
Bu bize açık çalışma kitabında my_data.xlsx adlı 2 sayfanın bulunduğunu söyler.
Örnek 3: Kapalı bir dosyadaki sayfa sayısını sayma
Diyelim ki my_data.xlsx adında, şu anda açık olmayan ancak aşağıdaki dosya konumunda bulunan iki sayfadan oluşan bir Excel çalışma kitabımız var:
C:\Kullanıcılar\Bob\Desktop\my_data.xlsx
Bu çalışma kitabındaki toplam sayfa sayısını saymak ve sayıyı aktif çalışma kitabının ilk sayfasının A1 hücresinde görüntülemek için aşağıdaki makroyu kullanabiliriz:
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
A1 hücresinin 2 değerini içerdiğine dikkat edin.
Bu bize kapalı çalışma kitabında my_data.xlsx adlı 2 sayfanın bulunduğunu söyler.
Not : Kodda Application.DisplayAlerts=False , VBA’ya kapalı çalışma kitabını açma, sayfaları sayma ve ardından çalışma kitabını kapatma işlemini görüntülememesini söyler.
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?