• DİKKAT

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

WorksheetFunction dizi formülü

Katılım
24 Temmuz 2007
Mesajlar
726
Excel Vers. ve Dili
Excel 2010 tr
Selam arkadaşlar
WorksheetFunction ile dizi formülü nasıl yazılır
Teşekkürler
 
Kod:
Range("A1").FormulaArray = ....

şeklinde deneyin.

.... yerine dizi formülünüz olacak.
 
Son düzenleme:
selam;
soruyu sanırım yanlış sordum
hücreye dizi formül yazmak istemiyorum
dizi formülün sonucunu bir değişkene almak istiyorum

"=LOOKUP(9.99E+307,IF(Hazirlik!R[-9]C[2]:R[-2]C[2]<TODAY(),Hazirlik!R[-9]C[2]:R[-2]C[2],""""))"

bu formülü
al=WorksheetFunction.Lookup(...
şeklinde dizi formül olarak nasıl yazarım
 
selam;
soruyu sanırım yanlış sordum
hücreye dizi formül yazmak istemiyorum
dizi formülün sonucunu bir değişkene almak istiyorum

"=LOOKUP(9.99E+307,IF(Hazirlik!R[-9]C[2]:R[-2]C[2]<TODAY(),Hazirlik!R[-9]C[2]:R[-2]C[2],""""))"

bu formülü
al=WorksheetFunction.Lookup(...
şeklinde dizi formül olarak nasıl yazarım

merhaba
range("A1").formulaarray=evaluate("=........") şeklinde deneyin.
yada örnek dosya ekleyin
 
ihsan bey cevap için teşekkürler ama sizin yazdığınızdada sonuc A1 hücresine yazılır
ben sonucu bir değişkene alamazmıyım

mesela
a=WorksheetFunction.Max(Range(d:d))
yazıp sonucu a değişkenine alabiliyoruz

yukarıdaki gibi dizi formül buraya nasıl yazılır
 
ihsan bey cevap için teşekkürler ama sizin yazdığınızdada sonuc A1 hücresine yazılır
ben sonucu bir değişkene alamazmıyım

mesela
a=WorksheetFunction.Max(Range(d:d))
yazıp sonucu a değişkenine alabiliyoruz

yukarıdaki gibi dizi formül buraya nasıl yazılır

merhaba
siz dosya eklemiyorsunuz ama şöyle olsun böyle olsun diyorsunuz çok güzel
Kod:
Sub değişken
dim ts,kaplan
kaplan=msgbox("Değişken Olarak Hesaplıyorum",vbyesno,"Onay")
If kaplan=vbno then exit sub
for ts=1 to cells(65536,"A").end(xlup).row
cells(ts,"B").formulaarray=evaluate("=...............................")
next
msgbox"Değişken Olarak Hesapladım",vbInformation,"Bitiş"
End Sub
Not : deneme yapılmamıştır.
 
Selam ekteki örnekte Düğmeye tıklandığında D sutunundaki tarihlerden bugünden küçük en büyük tarihi msgbox ile ekrana yazdırmak istiyorum.

[A1].formulaarray="=LOOKUP(9.99E+307,IF(Sayfa1!R[-9]C[2]:R[-2]C[2]<TODAY(),Sayfa1!R[-9]C[2]:R[-2]C[2],""""))"

ile istediğim sonucu elde edebiliyorum
bu formülü Application.workshetfunction ile yazamadım

yardımcı olabileceklere teşekkür ederim
 

Ekli dosyalar

Merhaba,

WorksheetFunction özelliğinde dizi formülleri kullanamazsınız. Bunun yerine İhsan beyin önerdiği EVALUATE komutunu kullanmanız gerekir.

Aşağıdaki kodu deneyiniz.

Kod:
Option Explicit
 
Sub Düğme1_Tıklat()
    Dim myrange, tarih
    myrange = Sheets("sayfa1").Range("D2:D" & Sheets("sayfa1").[D1].End(xlDown).Row).Address
    tarih = Evaluate("=LOOKUP(9.99E+307,IF(" & myrange & "<TODAY()," & myrange & ",""""))")
    MsgBox Format(tarih, "dd.mm.yyyy")
End Sub
 
Selam ekteki örnekte Düğmeye tıklandığında D sutunundaki tarihlerden bugünden küçük en büyük tarihi msgbox ile ekrana yazdırmak istiyorum.

[A1].formulaarray="=LOOKUP(9.99E+307,IF(Sayfa1!R[-9]C[2]:R[-2]C[2]<TODAY(),Sayfa1!R[-9]C[2]:R[-2]C[2],""""))"

ile istediğim sonucu elde edebiliyorum
bu formülü Application.workshetfunction ile yazamadım

yardımcı olabileceklere teşekkür ederim

formül sonucu sıfır çıkıyor
 
Merhaba,

Bir önceki mesajıma EVALUATE ile uygulanmış örnek kod ekledim. İncelermisiniz.
 
Korhan bey çok teşekkür ederim, istediğim buydu
peki bu yazımda formülün dizi formül olacağını nasıl anladı, bunu belirten bir şey göremedimde

Sizde çok teşekkür edeim ihsan bey sizinde kastettiğiniz muhtemelen buydu fakat ben anlayamadım
 
Merhaba,

EVALUATE özelliği formülün dizi olduğunu otomatik olarak algılamaktadır.
 
Geri
Üst