Excelde boş hücrelerle ilgili işlemler yapmak istiyorsanız makroda bulunan SpecialCells
metodundaki xlTypeBlanks
özelliğinden faydalanarak kodlama yapabilirsiniz. Kullanımını basit bir örnekle vermeye çalışalım.
Sub TablodaBosHucreleriTespitEt()
Range("A1:E10").SpecialCells(xlCellTypeBlanks) = "BOŞ"
End Sub
Bu kod bir çalışıp bir çalışmayabilir. Hatta Runtime error: '1004': Hiçbir hücre bulunamadı.
bu hatayla da bazen karşılaşıp bazen karşılaşmayabilirsiniz.
Burada Range
sınıfının SpecialCells()
metodunun çalışma şeklini anlamak önem kazanıyor. Ben de açıkçası tam çalışma mantığını bilmiyorum ama örnekler sizin de bir şeyler anlamanıza yardımcı olacaktır.
Eğer alan olarak doğrudan tablo tabanlı bir veri grubu verirseniz kod çalışır ve boş hücreleri tespit eder.
Diyelim ki yeni bir çalışma sayfası açtınız ve sayfa boş olmasına rağmen direkt olarak VBA penceresini açtınız, kodu eklediniz ve çalıştırmayı denediniz. O zaman "Hiçbir hücre bulunamadı." hatası almanız muhtemel. Çünkü eğer verilen alanda bir tablo altyapısı yoksa, excel çalışma sayfasında üzerinde işlem yapılmış en sağdaki ve en alttaki hücreyi referans alıyor ve buna göre bir şeyler yapmaya çalışıyor. Gel gelelim üzerinde işlem yapılmış bir hücre de yok. O yüzden de hata veriyor. Aslında bu hata mantıksız bir hata değil, işin bir de şu yönü var: Sınırın olmadığı durumda bu kodun çalışması demek, en büyük tablo olan sayfanın komple işlem görmesi demek. Bu da gereksiz vakit kaybı, gereksiz kaynak kaybı vs.
Diyelim ki boş bir çalışma sayfası açtınız, en sağ ve en alt hücre olan E10
hücresi üzerinde işlem yaptınız, sonra da bu kodu A1:E10
veya daha dar bir aralıkta çalıştırdınız. O zaman kod çalışır. Gel gelelim daha geniş bir aralık verirseniz yine A1:E10
aralığı için işlem yapar. Alanı genişletmek için en sağdaki ve en alttaki hücreyi güncellemeniz, yani başka bir hücrede işlem yapmanız gerekiyor. Örneğin Z20
hücresi içine yazı yazdık ve sildik. Artık bu kod (kodu da uygun şekilde güncellediğinizde) A1:Z20
aralığında çalışacak.
Eğer çalışma kitabını kapatıp yeniden açarsanız ve tablo tipi bir veriniz yoksa, yine hata verebilir, bu yüzden de en sağdaki ve en alttaki hücreyi belirleme işlemi yapmak durumunda kalabilirsiniz.