• DİKKAT

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

dizi içeriğini hücreden alma

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
sht = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")

Merhaba
yukarıdaki dizi içeriğini sayfadaki herhangi bir hücredeki değerden alabilirmiyiz?

range("a1")="Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"

sht = Array(range("a1"))
 
Merhaba,
A1 hücresi
Kod:
Sayfa1 Sayfa2 Sayfa3
gibi olsun

Kod:
Sub Makro1()

    Dim a As Variant

    a = Split(Range("A1"), " ")
    
    MsgBox UBound(a)
    
End Sub

gibi diziye alabilirsiniz.
 
Sub Makro1()

Dim a As Variant
a = Split(Range("A1"), " ")

For Rw = 1 To UBound(a)
b = (Range("A1")(Rw, 1))
Exit For
Next Rw
MsgBox (b)
End Sub

Merhaba,
A1 hücresi
Kod:
Sayfa1 Sayfa2 Sayfa3
gibi olsun

Kod:
Sub Makro1()

    Dim a As Variant

    a = Split(Range("A1"), " ")
   
    MsgBox UBound(a)
   
End Sub

gibi diziye alabilirsiniz.
bu şekilde mi?
 
Verdiğiniz kodlardan bir şey anlamadım.
Sorunuzun yanıtını verdim, kendinize uyarlayınız.
 
Verdiğiniz kodlardan bir şey anlamadım.
Sorunuzun yanıtını verdim, kendinize uyarlayınız.
Yazdığınız kodların sonucu 2 çıkıyor ondan dolayı yazmıştım.

zaten benim yazdığım gibi uyarlayınca da hata verdi kodlar.
 
Merhaba,

İstediğiniz bu mu? Veri A1 de ve virgül ile ayrılmış düşünüldü.
Kod:
Sub Makro1()

    Dim a As Variant, i As Byte

    a = Split(Range("A1"), ",")
    
    For i = 0 To UBound(a)
        MsgBox a(i)
    Next i
    
End Sub
 
Merhaba,

İstediğiniz bu mu? Veri A1 de ve virgül ile ayrılmış düşünüldü.
Kod:
Sub Makro1()

    Dim a As Variant, i As Byte

    a = Split(Range("A1"), ",")
   
    For i = 0 To UBound(a)
        MsgBox a(i)
    Next i
   
End Sub

Hücredeki veriye göre sayfaları yeni kitap olarak kopya oluşturacağım.

sht = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")
 
Sub sayfakopya()
Dim a As Variant, i As Byte

a = Split(Range("c1"), ",")
b = UBound(a)

Dim vArray(0 To 2)

For r = 0 To UBound(a)
vArray(r) = a(r)
Next

Sheets(vArray).Copy

End Sub


Aslında sorumun cevabını bu şekilde uyarladım fakat bir sorun daha oluştu.
Dim vArray(0 To 2)
buradaki 2 yi de parametreye atamam gerekiyor.
Dim vArray(0 To UBound(a)) gibi. bu şekilde sorun oluyor tabi
 
Sub sayfakopya()
Dim a As Variant, i As Byte

a = Split(Range("c1"), ",")
b = UBound(a)

Dim vArray(0 To 2)

For r = 0 To UBound(a)
vArray(r) = a(r)
Next

Sheets(vArray).Copy

End Sub


Aslında sorumun cevabını bu şekilde uyarladım fakat bir sorun daha oluştu.
Kod:
 Dim arrSh()
a = Split(Range("c1"), ",")
b = UBound(a)
For s = 0 To b
         ReDim Preserve arrSh(0 To s)
                arrSh(s) = a(s)
        Next s
        Sheets(arrSh).Copy

Sorunum çözülmüştür. Alternatif dizin türünü kullandım
 
Dim vArray(0 To 2)
buradaki 2 yi de parametreye atamam gerekiyor.
Dim vArray(0 To UBound(a)) gibi. bu şekilde sorun oluyor tabi
Merhaba,
Burada ifade ettiğiniz sorunu Dim yerine ReDim kullanarak çözebilirsiniz. ReDim vArray(0 To UBound(a)) gibi...
İyi çalışmalar...
 
Geri
Üst