Özellik ikonu

Range.Clear

İndirme izni yok

Genel Bakış

Range.Clear (Range.Clear method), belirtilen hücre aralığındaki değerleri, formülleri ve her türlü biçimlendirmeyi tek seferde siler. Excel arayüzündeki Giriş > Düzenleme > Temizle > Tümünü Temizle (Home > Editing > Clear > Clear All) komutunun VBA karşılığıdır. Hücreleri silmez ve çevredeki hücreleri kaydırmaz; yalnızca aralığı boş ve varsayılan görünümlü bırakır.

Söz dizimi​

Yöntemin söz dizimi çok basittir ve hiçbir bağımsız değişken almaz:
VBA
ifade.Clear
  • ifade: Bir Range nesnesi döndüren değişken ya da ifade (ör. Range("A1:C10"), Selection, Worksheets("Rapor").Cells); zorunludur. Yöntemin kendine ait bağımsız değişkeni yoktur.
Dönüş değeri: Yöntem Variant türünde bir değer döndürür, ancak bu değer kullanılmaz. Bu nedenle çağrı satırı yalnızca Range("A2:D10").Clear biçiminde yazılır; sonucu bir değişkene atamanız gerekmez.

Nelerin temizlendiği​

Clear yöntemi aralıktaki her şeyi sıfırlar:
  • Değerler ve formüller: Hücreler tamamen boşalır.
  • Biçimler: Sayı biçimi Genel (General) olur; yazı tipi, dolgu rengi, kenarlık ve hizalama varsayılana döner.
  • Koşullu biçimlendirme: Aralığa uygulanmış koşullu biçimlendirme kuralları kaldırılır.
  • Notlar ve köprüler: Hücrelere eklenmiş notlar ve köprüler de silinir.
Yöntem satır yüksekliğini ve sütun genişliğini değiştirmez, hücreleri sola ya da yukarı kaydırmaz. Hücreleri gerçekten silip komşu hücreleri kaydırmak istiyorsanız Range.Delete yöntemini kullanmanız gerekir. Sayfadaki her şeyi temizlemek için Cells.Clear yazabilirsiniz.

Clear yöntem ailesi​

Yalnızca belirli öğeleri temizlemek istediğinizde daha dar kapsamlı yöntemler vardır:
  • ClearContents: Yalnızca değerleri ve formülleri siler; biçimler korunur.
  • ClearFormats: Yalnızca biçimleri siler; değerler kalır.
  • ClearComments: Aralıktaki yorumları (comments) ve notları siler.
  • ClearNotes: Aralıktaki notları siler.
  • ClearHyperlinks: Köprüleri kaldırır; hücre metni ve çoğu zaman biçimi yerinde kalır.
  • ClearOutline: Aralıktaki gruplama (anahat) yapısını kaldırır.
  • Clear: Yukarıdakilerin tümünü bir arada uygular.
Veri girişi alanlarını boşaltırken genellikle ClearContents, tabloyu baştan kurarken ise Clear tercih edilir.

1. Sıfır stoklu satırları temizleme​

Stok sütunu 0 olan ürünlerin Ürün, Stok ve Birim Fiyat hücrelerini hem içerik hem biçim olarak temizlemek ve Durum sütununa bilgi yazmak istiyorsunuz. Alt+F11 ile VBA düzenleyicisini açın, Ekle > Modül (Insert > Module) ile standart modül ekleyin ve kodu yapıştırın.
VBA 14 satır
Option Explicit

Sub SifirStoklariTemizle()
    Dim i As Long
    With ActiveSheet
        For i = 2 To 6
            ' Stok 0 ise A:C hücrelerini tamamen temizle
            If .Cells(i, 2).Value = 0 Then
                .Range(.Cells(i, 1), .Cells(i, 3)).Clear
                .Cells(i, 4).Value = "Temizlendi"
            End If
        Next i
    End With
End Sub
Range.Clear
Formülünü incelemek için bir hücre seçin.
ABCD
1ÜrünStokBirim FiyatDurum
2Kalem128,50
3Temizlendi
4Silgi454,75
5Temizlendi
6Cetvel815,00
Stok ListesiExcelDepo v1.0.0
Makro 2. ile 6. satırlar arasında dolaşır. Stok değeri 0 olan Defter ve Ataç satırlarında A:C hücreleri Clear ile boşaltılır; Durum sütununa D3 hücresinde Temizlendi, D5 hücresinde Temizlendi yazılır. Stoku olan satırlara dokunulmaz.

2. Clear ile ClearContents farkı​

Aynı sayı biçimine sahip iki sütunu farklı yöntemlerle temizleyip hücrelerin sayı biçiminin ne olduğuna bakacaksınız. Gelir sütununda ClearContents, Gider sütununda Clear kullanılır; makro iki sütunun ilk hücresindeki NumberFormat değerini E sütununa yazar. Kodu standart modüle yapıştırın.
VBA 14 satır
Option Explicit

Sub ClearFarki()
    With ActiveSheet
        ' Yalnızca değerleri sil, biçim kalsın
        .Range("B2:B4").ClearContents
        ' Değer ve biçimi birlikte sil
        .Range("C2:C4").Clear

        ' Her iki sütunun sayı biçimini E sütununa yaz
        .Range("E2").Value = .Range("B2").NumberFormat
        .Range("E3").Value = .Range("C2").NumberFormat
    End With
End Sub
Range.Clear
Formülünü incelemek için bir hücre seçin.
ABCDE
1AyGelirGiderYöntemBiçim
2OcakGelir: ClearContents#,##0.00
3ŞubatGider: ClearGeneral
4Mart
Tutar KarşılaştırmaExcelDepo v1.0.0
Her iki sütundaki sayılar silinir. Gelir sütununda biçim korunduğu için E2 hücresinde #,##0.00 yazar; Gider sütununda Clear biçimi de sıfırladığından E3 hücresinde General görünür. Bu hücrelere sonradan sayı yazarsanız Gelir sütunu binlik ayraçlı, Gider sütunu ise Genel biçimde görünür.

3. Dinamik aralığı temizleme​

Rapor her ay farklı sayıda satır içerir. Makro A sütunundaki son dolu satırı bulur, başlık satırına dokunmadan A2 ile D sütununun son satırı arasını temizler ve temizlenen satır sayısını E2 hücresine yazar. Kodu standart modüle yapıştırın.
VBA 18 satır
Option Explicit

Sub RaporuTemizle()
    Dim ws As Worksheet
    Dim sonSatir As Long

    Set ws = ActiveSheet
    ' A sütunundaki son dolu satırı bul
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    If sonSatir >= 2 Then
        ' Başlık satırı hariç veri alanını temizle
        ws.Range("A2:D" & sonSatir).Clear
        ws.Range("E2").Value = sonSatir - 1
    Else
        ws.Range("E2").Value = 0
    End If
End Sub
Range.Clear
Formülünü incelemek için bir hücre seçin.
ABCDE
1ŞehirÜrünAdetTutarTemizlenen Satır
26
Satış RaporuExcelDepo v1.0.0
End(xlUp) ile bulunan son satıra kadar olan A2:D bölgesi temizlenir; başlıklar yerinde kalır. Temizlenen veri satırı sayısı E2 hücresine 6 olarak yazılır. Satır sayısı değişse bile kodu düzenlemeniz gerekmez, çünkü aralık son satıra göre kurulur.

Kullanırken dikkat edin​

  • İşlem geri alınamaz: Makro içinden yapılan Clear işlemi Excel'in Geri Al (Undo) listesini de temizler. Önemli veriyi silmeden önce dosyanın yedeğini alın ya da aralığı önce başka bir sayfaya kopyalayın.
  • Başlık biçimlerini kaybetmeyin: Clear yalnızca değerleri değil biçimleri de siler. Başlık satırı, sayı biçimleri ya da koşullu biçimlendirme korunacaksa veri alanına ClearContents uygulayın ve aralığa başlık satırını dahil etmeyin.
  • Aralığı sayfayla birlikte belirtin: Başında sayfa adı olmayan Range("A1:D10").Clear ifadesi etkin sayfada çalışır. Makro başka bir sayfa etkinken çalışırsa yanlış sayfayı temizleyebilirsiniz. Güvenli olması için Worksheets("Rapor").Range(...) ya da bir Worksheet değişkeni kullanın.
  • Korumalı sayfa ve birleşik hücreler: Korumalı sayfada kilitli hücreleri temizlemeye çalışmak 1004 numaralı çalışma zamanı hatasına yol açar; önce Unprotect yöntemiyle korumayı kaldırın. Birleştirilmiş bir hücrenin yalnızca bir kısmını kapsayan aralık da hata verebilir; aralığın birleşik alanın tamamını içerdiğinden emin olun.
  • Excel tablolarında dikkatli olun: Tablo (ListObject) içindeki veriyi Clear ile temizlediğinizde satırlar silinmez, yalnızca boşalır ve tablo biçimi de bozulabilir. Satırları gerçekten kaldırmak için ListRows üzerinden ya da Range.Delete yöntemiyle silme yapın.
  • İlgili konular:
    • Range.ClearContents: Yalnızca değer ve formülleri siler.
    • Range.ClearFormats: Yalnızca biçimleri siler.
    • Range.ClearComments, Range.ClearNotes ve Range.ClearHyperlinks: Yorum, not ve köprüleri temizler.
    • Range.Delete: Hücreleri siler ve komşu hücreleri kaydırır.
    • Cells ve UsedRange: Tüm sayfayı ya da kullanılan alanı temizlerken aralığı belirlemek için kullanılır.
    • End(xlUp): Son dolu satırı bulmak için kullanılır.
    • Application.ScreenUpdating: Büyük temizleme işlemlerinde ekran titremesini önler.
    • Giriş > Düzenleme > Temizle (Home > Editing > Clear): Arayüzdeki karşılığı.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
9
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst