Rica ederim,yapay zeka belki daha iyi anlatır diye sordum alttaki yazıyı yazdı.
Kolay gelsin.
VBA'da
iki boyutlu diziler de tanımlanabilir ve bu dizilerin boyutlarını değiştirmek için ReDim ve ReDim Preserve kullanılabilir. Ancak ReDim Preserve komutunun, sadece
son boyut üzerinde değişiklik yapabileceğini unutmamak önemlidir.
İki Boyutlu Dizi Tanımı
Bir iki boyutlu dizi, satır ve sütunlardan oluşur. Örneğin, bir tablo gibi düşünülebilir. Şimdi iki boyutlu bir diziyi nasıl tanımlayıp yeniden boyutlandırabileceğimize bakalım:
1. ReDim Kullanımı
ReDim, iki boyutlu bir dizinin her iki boyutunu da değiştirebilir. Ancak ReDim kullanıldığında, dizinin tüm içeriği kaybolur.
Örnek:
vba
Code kopieren
Dim dizi(,) As Integer ' İki boyutlu dinamik dizi tanımı
ReDim dizi(1 To 3, 1 To 4) ' 3 satır ve 4 sütundan oluşan bir dizi
Bu örnekte, dizi 3 satır ve 4 sütundan oluşur.
2. ReDim Preserve Kullanımı
ReDim Preserve, iki boyutlu bir dizinin sadece
son boyutunu (yani sütun sayısını) değiştirmek için kullanılabilir. Eğer satır sayısını değiştirmek isterseniz, Preserve kullanılamaz.
Örnek:
vba
Code kopieren
Dim dizi(,) As Integer
ReDim dizi(1 To 3, 1 To 2) ' 3 satır ve 2 sütundan oluşan bir dizi
' Diziye bazı veriler ekleyelim
dizi(1, 1) = 10
dizi(1, 2) = 20
' Sadece sütun sayısını artırarak mevcut verileri koruyalım
ReDim Preserve dizi(1 To 3, 1 To 5) ' Satır sayısı aynı kalır, sütun sayısı 5'e çıkar
Bu örnekte:
- Öncelikle 3 satır ve 2 sütundan oluşan bir dizi tanımlanmıştır.
- Daha sonra ReDim Preserve ile sadece sütun sayısı artırılmıştır. Satır sayısı sabit kalmış, dizi genişletilmiştir.
Eğer hem satır hem de sütun boyutunu aynı anda değiştirmeye çalışırsanız, ReDim Preserve hata verir.
Önemli Noktalar:
- ReDim Preserve sadece son boyutu koruyarak değiştirebilir.
- Eğer hem satır hem de sütun sayısını değiştirmek istiyorsanız, verileri elle kopyalamanız gerekir, çünkü ReDim Preserve buna izin vermez.
Bu yüzden, iki boyutlu dinamik dizilerle çalışırken Preserve kullanırken dikkatli olunması gerekir.