Array değişkenine Bağımsız iki aralığı tanımlamak

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
userform activate olayında
C5:I son satır yerine
Kod:
   ason = [c65536].End(3).Row
MyArr = Range("C5:I" & ason)
aralığını değilde

parça parça c5:c son satır ve F5:I son satır aralığını bir diziye nasıl atarız.
Kod:
   ason = [c65536].End(3).Row
MyArr = Range("C5:C" & ason) [COLOR=red]& Range("F5:I" & ason)[/COLOR]
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
MyArr değişkeninin boyutu nedir?
şimdilik c5:c7000 ve f5:I7000 aralığını kapsayacak 2005-2008 gider tablosunu kapsıyor, bu kış 2001 e kadar girişler yapılacak muhtemelen 15-16 bin satır olur.

yani 5 x 16000 şimdilik planlanabilir.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
5 x Kayıt Sayısı boyutlu bir dizi değişken tanımlayacağınız varsayımıyla;

Aşağıdaki kodları dizi değişkene oluşturmak için kullanabilirsiniz.

NOT : Alternatif olarak, hücrelerin bitişik olmadığı aralıklar için, Union fonksiyonunu kullanabilirsiniz. Union'la birleştirdiğiniz alanın içinde Hücre kolleksiyonunu okuyup dizi değişkenine atayabilirsiniz. Ama, okuma esnasında bitişik ve bitişik olmayan kısımların okunmasında bir düzensizlik mevcuttur ve dikkat edilmesi gerekir. Aşağıdaki önerilen yöntem ise, -varsayıma göre-; aralığın düzgün okunmasına olanak sağlar ...

Kod:
Sub Diziye_DegerAtama()
    Dim vStn As Variant
    Dim myarr() As Variant
    Dim i As Integer
    Dim j As Integer
    Dim iSonSatir As Integer
 
    vStn = Array(3, 6, 7, 8, 9)
 
    iSonSatir = 10 [COLOR=darkgreen]'Bunu siz son satiri bulmak için kullanın[/COLOR]
 
    ReDim myarr(1 To 5, 1 To iSonSatir)
 
    For i = 1 To iSonSatir
        For j = 1 To 5
            myarr(j, i) = Cells(i, vStn(j - 1))
        Next j
    Next i
 
[COLOR=darkgreen]'-- Immediate penceresinden, değerleri gözleyebilirsiniz[/COLOR]
[COLOR=darkgreen]'   Bu bölümü silebilirsiniz.[/COLOR]
    For i = 1 To iSonSatir
        For j = 1 To 5
            Debug.Print myarr(j, i)
        Next j
    Next i
[COLOR=darkgreen]'--------------------------------------------------------[/COLOR]
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ferhat gocam teşekkür ederim.
öğrenmek açısından, Union yöntemine dair bir örnek verebilirmisiniz.
 
Üst