Vba'da bir tablo nasıl temizlenir?

VBA’da bir diziyi silmek için “Erase” ifadesini kullanmanız gerekir. Silmek istediğiniz tablonun adının önüne “Sil” anahtar kelimesini ekleyin ancak tüm değerlerin tablodan sıfırlanacağını unutmayın. Aşağıdaki tabloda 3 öğeniz var ve her şeyi silmek için silme ifadesini kullandık.

 Sub myMacro1() Dim myArray() As Long ReDim myArray(4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 ReDim myArray(1 To 5) MsgBox myArray(3) End Sub 
vba-temiz-dizi

Ve bu ifadeyle dizideki tüm elemanları temizledi ve dizi elemanını almak için Debug.Print (Immediate Window) kullandığımızda geriye hiçbir şey kalmıyor.

Dinamik tabloyu temizle

ReDim’i kullandığınızda tüm öğeler silinir. Ancak bazı öğeleri korumak ve diziyi kısmen temizlemek için save deyimini kullanabilirsiniz. Aşağıdaki örnekte bir dizimiz var ve dördüncü değeri kısmen temizledik ve ardından elemanları tekrar 5’e ayarladık.

Ve dinamik bir diziyi kısmen temizlemek istiyorsanız.

 Sub myMacro2() Dim myArray() As Long ReDim myArray(1 To 4) myArray(1) = 1 myArray(2) = 2 myArray(3) = 3 myArray(4) = 4 'erase position 4 but preserve the 1,2, and 3 ReDim Preserve myArray(1 To 3) 'redefine the array items to five ReDim Preserve myArray(1 To 5) MsgBox myArray(3) End Sub

Önemli noktalar

  1. Sabit bir tabloyu temizlediğinizde:
    1. Bir dizenin tüm değerlerini içeren bir dizide, silme ifadesi (değişken uzunluk) tüm öğeleri sıfır uzunluklu dize ” ” ve (sabit uzunluk) sıfıra sıfırlar.
    2. Sayısal değerler içeren bir dizide, silme ifadesi tüm öğeleri sıfıra sıfırlayacaktır.
    3. Değişen bir veri türü olarak clear ifadelerinin tüm öğeleri boş olarak sıfırlayacağı bir dizide.
    4. Nesneleri içeren bir dizide, silme ifadesi tüm öğeleri sıfırlayacak ve sıfırlayacaktır.
    5. Nesneleri içeren bir dizide, ayrı bir değişken olması durumunda, silme ifadesi tüm öğeleri sıfırlayacaktır.
  2. Dinamik bir diziyi sildiğinizde, silme ifadesi dinamik dizi tarafından kullanılan alanı serbest bırakır.

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir