• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri tek satır olunca dizi hata veriyor

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,042
Excel Vers. ve Dili
2013 Türkçe
Arkadaşlar merhaba,
A sütununda veriler mevcut. Ancak bu veriler tek satır olunca kod hata veriyor. Bunun çözümü nedir?

Sub Düğme1_Tıklat()
Dim x(20) As String
son = Cells(Rows.Count, 1).End(3).Row
A = Range("a1:A" & son).Value
x(3) = A(1, 1)
MsgBox x(3)
End Sub
 

Ekli dosyalar

Tek veri olduğu için hata veriyor. Tek veri olunca dizi oluşmuyor. Bu sebeple ilk önce tanımladığınız verinin dizi oluşturup oluşturmadığını sorgulayabilirsiniz.

Kod:
Sub Düğme1_Tıklat()
    Dim x(20)
    son = Cells(Rows.Count, 1).End(3).Row
    A = Range("a1:A" & son).Value
    If Not IsArray(A) Then
        x(3) = A
    Else
        x(3) = A(1, 1)
    End If
    MsgBox x(3)
End Sub
 
Korhan Bey, cevabınız için çok teşekkür ederim sorun çözüldü. Bu kodda istediğim sonucu alamıyorun. C1 de A2, C2 de A4 yazması gerekiyordu ama iki değer de A2.
Sub Düğme1_Tıklat()
Dim x(20) As String
son = Cells(Rows.Count, 1).End(3).Row
A = Range("A1:A" & son).Value
x(0) = A(2, 1)
x(1) = A(4, 1)
Range("C1").Resize(2) = x
End Sub
Diziler konusunda fikrim yok.
1- Dim x(20) as String : Bu ifade aralığın metinlerden oluştuğunu gösteriyor sanırım. Peki aralık hem sayı, hem metin içerseydi ne yazacaktık.
2- Range("C1").Resize(2) = x : Burdaki 2 ne anlama geliyor. Bazılarında (2,1) gibi 2 sayı kullanılıyor. Burda neden sadece 2 kullandık.
 

Ekli dosyalar

Merhaba,
Range("c1").Resize(2) = x , kod satırını

Range("c1").Resize(2) = Application.Transpose(x) oalarak deneyiniz.

2. sorunuzdaki 2 ifadesi 2 satır yazdırılmasıdır.
 
Sn Ziynettin Bey, çok teşekkür ederim. Ama sizin kodunuz da
Sayfa2.Range("G2").Resize(Say, UBound(a, 2)) = c hata vermemişti. Ne fark var?
 
Merhaba,

Hücre adresinden sonra ".Resize(" yazdığınızda sizden rowsize ve columnsize parametrelerini ister. Oluşan diziye göre bu değerleri tanımlarsınız. Eğer diziniz tek boyutlu ise sadece rowsize parametresini girmeniz yeterli olacaktır. Kısaca bunlar birazda kod yazma tekniğine giriyor.

Yiğit-Yoğurt ilişkisine benziyor...
 
Geri
Üst