Özellik ikonu

ClearContents

İndirme izni yok

Genel Bakış

ClearContents (İçeriği Temizle), bir Range nesnesinin yöntemidir ve aralıktaki sabit değerleri ile formülleri siler. Hücrelerin biçimlendirmesi, veri doğrulaması ve koşullu biçimleri yerinde kalır. Veri giriş alanlarını boşaltıp sayfanın görünümünü bozmadan yeniden kullanıma hazırlamak için en sık kullanılan VBA yöntemlerinden biridir.

Söz dizimi​

ClearContents yöntemi bir Range nesnesine uygulanır ve parametre almaz:
VBA 6 satır
ifade.ClearContents

' Örnekler
Range("B2:D6").ClearContents
Selection.ClearContents
Cells.ClearContents
  • ifade: Zorunlu. Bir Range nesnesini veren ifade. Tek hücre, çok hücreli aralık, birden çok alan (Union ile birleştirilmiş) ya da SpecialCells sonucu olabilir.
  • Parametre: Yoktur; yönteme argüman verilmez.
  • Dönüş değeri: Variant döner; uygulamada bu değer kullanılmaz, yöntem tek başına bir deyim olarak yazılır.
Bu işlemin elle karşılığı Giriş > Düzenleme > Temizle > İçeriği Temizle (Home > Editing > Clear > Clear Contents) komutu ya da seçili hücrelerde Delete tuşudur.

Neyi siler, neyi korur​

ClearContents yalnızca hücrenin içeriğini boşaltır. Sonuç olarak şunlar olur:
  • Silinenler: Sayılar, metinler, tarihler ve formüller.
  • Korunanlar: Sayı biçimi, yazı tipi, dolgu rengi, kenarlıklar, hizalama, veri doğrulama kuralları ve koşullu biçimlendirme.
  • Birleştirilmiş hücreler: Aralık birleştirilmiş bir alanın tamamını kapsıyorsa işlem çalışır. Alanın yalnızca bir bölümünü kapsıyorsa 1004 numaralı çalışma zamanı hatası oluşur.
  • Dizi formülleri: Çok hücreli bir dizi formülünün yalnızca bir kısmı temizlenemez; dizinin tamamı aralığa dahil edilmelidir.
  • Korumalı sayfa: Kilitli hücreler içeren aralıkta sayfa korumalıysa yöntem hata verir.
VBA ile yapılan değişiklikler Ctrl+Z ile geri alınamaz; bu nedenle önemli verilerde temizlemeden önce yedek almayı düşünün.

Benzer temizleme yöntemleriyle karşılaştırma​

Range nesnesinin birkaç temizleme yöntemi vardır ve her biri farklı bir şeyi siler:
  • Clear: İçeriği, biçimleri, notları ve hemen her şeyi siler; hücre ilk haline döner.
  • ClearContents: Yalnızca değer ve formülleri siler.
  • ClearFormats: Yalnızca biçimleri siler, içerik kalır.
  • ClearComments: Yorumları ve notları siler. Notlar için ClearNotes da kullanılabilir.
  • ClearHyperlinks: Köprüleri kaldırır, hücre metni kalır.
  • ClearOutline: Gruplama (anahat) yapısını kaldırır.
  • Delete: Hücreleri siler ve komşu hücreleri kaydırır; içerik temizleme değildir.
Sayfanın yapısını ve görünümünü korumak istiyorsanız genellikle ClearContents doğru seçimdir. Tüm sayfayı tamamen sıfırlamak istiyorsanız Cells.Clear kullanılır.

1. Veri giriş alanını temizleme​

Sayfada beş ürünün üç aylık satış adetleri ve formülle hesaplanan Toplam sütunu vardır. Aşağıdaki kodu standart modüle yapıştırın. Makro yalnızca B2:D6 girdi alanını boşaltır; ürün adları, başlıklar ve Toplam formülleri yerinde kalır.
VBA 6 satır
Option Explicit

Sub GirdileriTemizle()
    ' Etkin sayfadaki aylık adet girdilerini sil
    ActiveSheet.Range("B2:D6").ClearContents
End Sub
ClearContents
Formülünü incelemek için bir hücre seçin.
ABCDE
1ÜrünOcakŞubatMartToplam
2Kalem0
3Defter0
4Silgi0
5Dosya0
6Zımba0
Satış TablosuExcelDepo v1.0.0
Makro çalıştıktan sonra B2:D6 aralığındaki adetler silinir, ürün adları ve başlıklar yerinde kalır. Toplam sütunundaki formüller silinmediği için boş girdileri toplar; örneğin E2 hücresi 0 değerini gösterir. Hücrelerin sayı biçimi de korunduğundan yeni değerler yazıldığında aynı biçimle görünür.

2. Yalnızca sabit değerleri temizleme​

Sayfada adet ve birim fiyat girdileri ile Tutar sütununda formüller vardır. Kodu standart modüle yapıştırın. Makro, SpecialCells ile aralıktaki sabit değerleri bulur ve yalnızca onları temizler. Seçilecek sabit hücre yoksa SpecialCells hata verdiği için hata yakalanır.
VBA 15 satır
Option Explicit

Sub SabitleriTemizle()
    Dim hedef As Range

    ' Sabit değer içeren hücre yoksa SpecialCells hata verir
    On Error Resume Next
    Set hedef = ActiveSheet.Range("B2:C6").SpecialCells(xlCellTypeConstants)
    On Error GoTo 0

    ' Hücre bulunduysa yalnızca onları temizle
    If Not hedef Is Nothing Then
        hedef.ClearContents
    End If
End Sub
ClearContents
Formülünü incelemek için bir hücre seçin.
ABCD
1ÜrünAdetBirim FiyatTutar
2Çay0,00
3Kahve0,00
4Şeker0,00
5Un0,00
6Makarna0,00
Fiyat HesabıExcelDepo v1.0.0
Makro B2:C6 aralığındaki sabit sayıları temizler. Aralıkta formül olsaydı SpecialCells onları seçmeyeceği için formüller silinmezdi. Tutar sütunundaki formüller korunur ve girdiler boş olduğundan D2 hücresi 0,00 sonucunu verir. Ürün adları A sütununda olduğu için işlem dışında kalır.

3. Koşula göre satır içeriğini temizleme​

Sayfada altı sipariş kaydı vardır. Durumu Tamamlandı olan satırların A:D sütunlarındaki içerik temizlenecek ve F sütununa Temizlendi notu yazılacaktır. Kodu standart modüle yapıştırın. Son satır, ilk sütundaki dolu hücrelere göre bulunur ve döngü bu sınırla sonlanır.
VBA 20 satır
Option Explicit

Sub TamamlananlariTemizle()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long

    Set ws = ActiveSheet

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

    For i = 2 To sonSatir
        If ws.Cells(i, 5).Value = "Tamamlandı" Then
            ' Sipariş bilgilerini sil, Durum sütunu kalsın
            ws.Range(ws.Cells(i, 1), ws.Cells(i, 4)).ClearContents
            ws.Cells(i, 6).Value = "Temizlendi"
        End If
    Next i
End Sub
ClearContents
Formülünü incelemek için bir hücre seçin.
ABCDEF
1Sipariş NoMüşteriŞehirTutarDurumSonuç
2TamamlandıTemizlendi
3S-1002Ayşe DemirAnkara890,00Bekliyor
4TamamlandıTemizlendi
5S-1004Fatma ŞahinBursa450,00Hazırlanıyor
6TamamlandıTemizlendi
7S-1006Zeynep ArslanAdana960,25Bekliyor
Sipariş KayıtlarıExcelDepo v1.0.0
Durumu Tamamlandı olan 2, 4 ve 6. satırlarda A:D hücreleri boşalır ve F sütununa Temizlendi, Temizlendi ve Temizlendi notları yazılır. Bekliyor ve Hazırlanıyor durumundaki kayıtlar değişmez. Durum sütunu temizlenmediği için hangi kaydın tamamlandığı izlenebilir kalır.

Kullanırken dikkat edin​

  • Clear ile karıştırmayın: Clear biçimleri de sildiği için tablonuzun renk, kenarlık ve sayı biçimi kaybolur. Yalnızca verileri boşaltmak istiyorsanız ClearContents kullanın.
  • Başlık satırını aralığa katmayın: Tüm sütunu temizleyen Columns("A").ClearContents gibi ifadeler başlık hücresini de siler. Veri alanını B2 gibi ilk veri hücresinden başlatın ve son satırı End(xlUp) ile bulun.
  • Formülleri silmemeye dikkat edin: ClearContents hem sabit değerleri hem formülleri siler. Yalnızca girdileri temizlemek istiyorsanız SpecialCells(xlCellTypeConstants) ile aralığı daraltın ya da yalnızca girdi sütunlarını belirtin.
  • Hata durumları: Korumalı sayfadaki kilitli hücrelerde, birleştirilmiş hücrelerin bir bölümünde ve dizi formülünün bir kısmında 1004 numaralı hata oluşur. Gerekirse sayfa korumasını kaldırın ya da aralığı birleşik alanın ve dizinin tamamını kapsayacak biçimde genişletin.
  • Geri alma yok: Makro ile temizlenen içerik Ctrl+Z ile geri getirilemez. Kritik çalışma kitaplarında makroyu çalıştırmadan önce dosyanın kopyasını alın.
  • Geniş aralıklarda performans: Tüm sayfaya Cells.ClearContents uygulamak mümkündür ancak genellikle gerekmez. Yalnızca kullanılan alanı temizlemek için UsedRange.ClearContents ya da belirli bir aralık kullanın.
  • İlgili konular:
    • Range.Clear: İçerik ve biçimlerin tamamını siler.
    • Range.ClearFormats: Yalnızca biçimleri siler.
    • Range.ClearComments: Yorum ve notları siler.
    • Range.Delete: Hücreleri silip kaydırır.
    • Range.SpecialCells: Sabit ya da formüllü hücreleri seçer.
    • Range.End: Son dolu hücreyi bulmak için kullanılır.
    • Worksheet.UsedRange: Sayfadaki kullanılan alanı verir.
    • TOPLA: Örneklerdeki Toplam sütunu gibi hesaplamalarda kullanılan işlev.
Ö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
16
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst