SpecialCells
ile işlem yaptırmaya çalıştığım zaman şunu farkettim: Sanırım performans durumlarından dolayı en aşağıdaki ve en sağdaki işlem görmüş hücreye göre seçim yapıyor. Eğer verilen alan tümüyle dolu değilse o alanda komple çalışmayabiliyor. Bu durumu kullanarak tüm alan için işlem yapmasını sağlayalım.
Option Explicit
Sub BelirlenenAraliktakiTumBosHucreleriSec()
Dim alan As Range
Dim deg As Range
Dim gecici_degisken As String
Set alan = Range("A1:L25")
Set deg = Cells(alan.Rows.Count, alan.Columns.Count)
gecici_degisken = deg.Value
deg = "aaa"
deg = gecici_degisken
alan.SpecialCells(xlCellTypeBlanks).Select
End Sub
Option Explicit
Sub BelirlenenAraliktakiTumBosHucreleriSec()
Dim alan As Range
Dim deg As Range
Dim gecici_degisken As String
'--------------------------------------------------
'SpecialCells için çalışma alanı verdik.
'--------------------------------------------------
Set alan = Range("A1:L25")
'--------------------------------------------------
'Verilen alandaki en son hücreyi bulduk.
'--------------------------------------------------
Set deg = Cells(alan.Rows.Count, alan.Columns.Count)
'--------------------------------------------------
'Son hücrenin dolu olma ihtimaline karşı
'bir önlem alıyoruz. Yani hem hücrenin
'ilk değerini saklıyoruz, hem de hücreye
'işlem yaptırıyoruz.
'--------------------------------------------------
gecici_degisken = deg.Value
'--------------------------------------------------
'Hücreye işlem yaptırdığımız kısım.
'Artık SpecialCells istediğimiz tüm
'alanda çalışacak yeni sınırını elde etti.
'Bu kısmı boş bırakmayın, yoksa işlem
'yapılmış gibi olmuyor.
'--------------------------------------------------
deg = "geçici değer"
'--------------------------------------------------
'Hücrenin ilk değerini geri atadık.
'--------------------------------------------------
deg = gecici_degisken
'--------------------------------------------------
'Şimdi de SpecialCells ile boş hücreleri seçtik.
'--------------------------------------------------
alan.SpecialCells(xlCellTypeBlanks).Select
End Sub