SpecialCells Belirlenen Tüm Alan İçin Çalışsın - Microsoft Excel


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.

Kod


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

Kod (Açıklamalı)


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

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba