/ / Excel VBA'da Dinamik Dizi

Excel VBA'da Dinamik Dizi

Dizininizin boyutu artarsa ​​ve dizinin boyutunu düzeltmek istemezseniz, ReDim anahtar kelimesi. Excel VBA daha sonra dizinin boyutunu otomatik olarak değiştirir.

A sütununa bazı sayılar ekleyin.

Excel VBA'da Dinamik Dizi

Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:

1. İlk olarak, dizi adlarını bildiriyoruz. Ayrıca, Tamsayı türünde iki değişken belirtin. Bir adlandırılmış boyut ve bir adlı i.

Dim numbers() As Integer, size As Integer, i As Integer

Not: dizi henüz bir boyuta sahip değil. Burada rakamlar, büyüklük ve ben rastgele seçilir, herhangi bir isim kullanabilirsiniz. Kodunuzun geri kalanında bu adlara başvurmayı unutmayın.

2. Ardından, dizinin boyutunu belirler ve değişken boyutuna kaydederiz. Bunun için çalışma sayfası işlevi CountA'yı kullanabilirsiniz. Aşağıdaki kod satırını ekleyin:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. Şimdi dizinin boyutunu biliyoruz ve onu yeniden boyutlandırabiliriz. Aşağıdaki kod satırını ekleyin:

ReDim numbers(size)

4. Ardından, dizinin her bir öğesini başlatıyoruz. Bir döngü kullanıyoruz.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. Bir MsgBox kullanarak dizinin son elemanını gösteririz.

MsgBox numbers(size)

6. Visual Basic Düzenleyicisi'nden çıkın ve sayfadaki komut düğmesine tıklayın.

Sonuç:

Dizinin Son Elemanı

7. Şimdi bunun neden bir dinamik dizi olarak adlandırıldığını açıkça görmek için, A sütununa bir sayı ekleyin.

Numara ekle

8. Komut düğmesine tekrar tıklayın.

Dinamik Dizi Sonucu

Sonuç: Excel VBA, bu dinamik dizinin boyutunu otomatik olarak değiştirdi.

9. ReDim anahtar sözcüğünü kullandığınızda, dizide kayıtlı olan mevcut verileri silersiniz. Örneğin, önceden oluşturulmuş koda aşağıdaki kod satırlarını ekleyin:

ReDim numbers(3)
MsgBox numbers(1)

Sonuç:

Korunmasız

Dizi boş.

10. Var olan dizi içindeki verileri korumak istediğinizde, Koruma anahtar sözcüğünü kullanın.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Sonuç:

Koru ile

Ayrıca oku: