Farklı dizileri birleştirerek tek dizi yapmak

Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Merhabalar,
arr1(1,2,3,4,5,6)
arr2(10,11,12,13,14,....,55)
bu iki diziyi ardı sıra birleştirerek aşağıda ki diziyi nasıl elde edebilirim?
arr3(1,2,3,4,5,6,10,11,12,13,14,.....,55)
 
Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Bu kod neden çalışmıyor olabilir?

Sub deneme()

Dim arr1(1, 2, 3, 4, 5, 6) As Integer
Dim arr2(10, 11, 12, 13, 14, 15) As Integer
ReDim arr3(1 To 12) As Integer

arr3 = Split(Join(arr1, ",") & "," & Join(arr2, ","), ",")
MsgBox arr3(1)

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
Aşağıdaki gibi olmalı

Kod:
Sub deneme()
    Dim arr1 As Variant
    Dim arr2 As Variant
    Dim arr3 As Variant
    arr1 = Array(1, 2, 3, 4, 5, 6)
    arr2 = Array(10, 11, 12, 13, 14, 15)
    arr3 = Split(Join(arr1, ",") & "," & Join(arr2, ","), ",")
    MsgBox arr3(1)
End Sub
 
Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Muzaffer bey ilginize teşekkür ederim. verdiğiniz kod çalışıyor zira benim ayrıca hazırladığım double değişkenlerle dolu 2 farklı dizim var, aynı sistemde aşağıda ki kod neden çalışmıyor anlamıyorum.
aldığım uyarı: " invalid procedure call or argument"
kod ise:

Dim sonTekBoyutDizi As Variant
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi1, ",") & "," & Join(sonTekBoyutDizi2, ","), ",")

sonTekBoyutDizi1 ve sonTekBoyutDizi2 benim bahsettiğim veri ile dolu olan birleştirmek istediğim iki dizi
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
O zaman herhalde sizin sonTekBoyutDizi1 ve sonTekBoyutDizi2 dizileriniz boyutlu dizi olmalı.
Mümkünse dosyanızı ekleyin kontrol edelim. Dosyanızda önemli bilgiler varsa silebilirsiniz sadece kod kısmı kalsa yeterli.
 
Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Muzaffer bey Kodu Autocad VBA da geliştiriyorum, bahse konu birleştirmeyi istediğim double değişkenli 2 dizi öncesinde oluşturduğum 2 boyutlu bir diziden ayırarak tek boyutlu hale getiriyorum aşağıda ki kod ile. Elimde sonTekBoyutDizi1 ve sonTekBoyutDizi2 diziler olmuş oluyor 1 boyutlu haliyle. bunları birleştirmem gerekiyor.

ReDim sonTekBoyutDizi1(1 To 2 * noktaSayisi1) As Double
Dim k As Integer
k = 1
For i = 1 To noktaSayisi1 Step 1
For j = 1 To 2 Step 1
sonTekBoyutDizi1(k) = noktalarDiziCokluRdenOnce(i, j)
k = k + 1
Next j
Next i
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
msgbox join(sonTekBoyutDizi1,",")

komutu çalışırsa ekran görüntüsünü atar mısınız?
 

Muzaffer Ali

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

Aşağıdaki gibi ikisini de sonTekBoyutDizi1 yapın
Kod:
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi1, ",") & "," & Join(sonTekBoyutDizi1, ","), ",")
Bir de ikisini de sonTekBoyutDizi2 yapın.

Kod:
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi2, ",") & "," & Join(sonTekBoyutDizi2, ","), ",")
hangisinde hata verecek ona bakalım.
 
Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
msgbox join(sonTekBoyutDizi1,",")

komutu çalışırsa ekran görüntüsünü atar mısınız?
sonTekBoyutDizi1 de sorun yok.

Aşağıdaki gibi ikisini de sonTekBoyutDizi1 yapın
Kod:
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi1, ",") & "," & Join(sonTekBoyutDizi1, ","), ",")
Bir de ikisini de sonTekBoyutDizi2 yapın.

Kod:
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi2, ",") & "," & Join(sonTekBoyutDizi2, ","), ",")
hangisinde hata verecek ona bakalım.
yine aynı hatayı veriyor.
Dim sonTekBoyutDizi As Variant
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi2, ",") & "," & Join(sonTekBoyutDizi2, ","), ",")
ya da
sonTekBoyutDizi = Split(Join(sonTekBoyutDizi1, ",") & "," & Join(sonTekBoyutDizi1, ","), ",")

ben tüm dizileri ReDim olarak tanımladım bu anlamda bi sorun olabilir mi?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Kod:
    Dim yeniDizi
    yeniDizi = sonTekboyutDizi1
    ReDim Preserve yeniDizi(1 To UBound(yeniDizi) + UBound(sonTekboyutdizi2))
    For i = 1 To UBound(sonTekboyutdizi2)
        yeniDizi(UBound(sonTekboyutDizi1) + i) = sonTekboyutdizi2(i)
    Next i
 
Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Kod:
    Dim yeniDizi
    yeniDizi = sonTekboyutDizi1
    ReDim Preserve yeniDizi(1 To UBound(yeniDizi) + UBound(sonTekboyutdizi2))
    For i = 1 To UBound(sonTekboyutdizi2)
        yeniDizi(UBound(sonTekboyutDizi1) + i) = sonTekboyutdizi2(i)
    Next i
Muzaffer bey çalıştı ellerinize sağlık, müsaitseniz bu kodu biraz açıklarsanız mutlu olurum. birde Split(Join( ... metodunu neden kullanamadık acaba?
Saygılar. tekrar teşekkür ederim.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
Split(Join( ... metodunu neden kullanamadık acaba?
Kodda da görebiliceğiniz gibi join stringe çevirebildiği ifadeleri birleştiriyor. Double değişkenlerde hata veriyor (muş).

Kod:
Sub m()

    Dim al(1 To 2)
    al(1) = 1.25
    al(2) = 2.5
    MsgBox Join(al, ",")

    Dim ver(1 To 2) As Double
    ver(1) = 1.25
    ver(2) = 2.5
    MsgBox Join(ver, ",")

End Sub
 
Üst