Adedi belli olmayan sayıda array oluşturma

Katılım
17 Temmuz 2020
Mesajlar
2
Excel Vers. ve Dili
2016
Merhaba;

Adedi belli olmayan sayıda array oluşturmak istiyorum. VBA'da bu mümkün müdür? Yardımlarınız için simdiden teşekkürler
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Redim değimi ile liste sayısını değiştirebilirsiniz

Kod:
Sub Test()
    Dim Arr() As Variant
    ReDim Arr(2)
    Arr(0) = "Değer_1"
    Arr(1) = "Değer_2"
    Arr(2) = "Değer_3"
End Sub
Eğer önceki liste değerlerinin silinmesini istemezseniz ReDim Preserve değimini kullanmalısınız.

Kod:
Sub Test()
    Dim Arr() As Variant
    ReDim Arr(2)
    Arr(0) = "Değer_1"
    Arr(1) = "Değer_2"
    Arr(2) = "Değer_3"
    
    ReDim Preserve Arr(4) 'Eğer önceki değerlerin silinmesini isterseniz Preserve değimini kullanmayın
    Arr(3) = "Değer_4"
    Arr(4) = "Değer_5"
    
End Sub
 
Katılım
17 Temmuz 2020
Mesajlar
2
Excel Vers. ve Dili
2016
Muzaffer Bey;
Yanıtınız için teşekkür ederim . Fakat aradığım şey tam olarak Array elemanlarını arttırmak değil. Arraylari arttırmak istiyorum.

Mesela böyle bir tanımlama yerine;

Kod:
Sub tt()

Dim arr1() As Variant
Dim arr2() As Variant
Dim arr3() As Variant
Dim arr4() As Variant
Dim arr5() As Variant


End Sub
böyle bir tanımlama mümkün mü? Veya nasıl dinamik olarak çoğaltabilirim.

Kod:
Sub tt()


For i = 1 To 5
    dim arr & i ()
Next i


End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
ArrayListin elemanlarını array gibi kullanabilirsiniz.

Örnek
Kod:
Sub Test()
    Dim Arr(10) As Variant
    Dim ArrEkle(2) As Variant
    
    ArrEkle(0) = "test0"
    ArrEkle(1) = "test1"
    ArrEkle(2) = "test2"
    
    Arr(0) = ArrEkle
    
    ArrEkle(0) = "test4"
    ArrEkle(1) = "test5"
    ArrEkle(2) = "test6"
    
    Arr(1) = ArrEkle
    
     'Kullanımı
    MsgBox Arr(1)(1)
    
End Sub
 
Üst