• DİKKAT

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

WorksheetFunction.Lookup Kullanımı

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
Arkadaşlar aşağıdaki kod ile aradığım verinin satır bilgisini bulmak istiyorum,ancak hata veriyor. Kırmızı olan kısma ne yazmalıyım? veya lookup ile nasıl yapmalıyım?

Kod:
Sub Makro1()

Dim yb As Worksheet
Dim WF As WorksheetFunction
Dim son_yb As Long

Set yb = Sheets("Yapılan Bakımlar")
Set WF = WorksheetFunction
son_yb = yb.Range("A65536").End(3).Row

bulunan = WF.Lookup(39091, yb.Range("A2:A" & son_yb), [COLOR="Red"][B]yb.Rows("2:son_yb")[/B][/COLOR])

MsgBox bulunan
End Sub

eğer kodu
Kod:
bulunan = WF.Lookup(39091, yb.Range("A2:A" & son_yb))
şeklinde kullanırsam aradığım verinin kendisini veriyor.

İyi çalışmalar.
 
Selamlar,

Ergün bey bir alanda bir verinin hangi satırda olduğunu KAÇINCI yani MATCH fonksiyonu ile bulabilirsiniz.

Kod:
bulunan = WF.Match(39091, yb.Range("A2:A" & son_yb), 0)
 
Selamlar,

Ergün bey bir alanda bir verinin hangi satırda olduğunu KAÇINCI yani MATCH fonksiyonu ile bulabilirsiniz.

Kod:
bulunan = WF.Match(39091, yb.Range("A2:A" & son_yb), 0)

Selam,
Teşekkür ederim. verdiğiniz kodda biraz değişiklik yaparak problemin birini çözdüm.
Kod:
bulunan = WF.Match(39091, yb.Range("A2:A" & son_yb), 1) + 1

2.problemim ise (daha doğrusu problem değil istek)

Kod:
satır = Evaluate("=MIN(IF(A2:A25>=D2,ROW(A2:A25)))")

ile 2.problemi hallediyorum. ancak bunun yerine daha farklı kodlar, Find veya WorksheetFunction.Lookup veya benzer fonksiyolar ile yapmak istiyorum.

Örnek dosyam ektedir.

Yardımcı olabilirseniz. Sevinirim
 
Son düzenleme:
Selamlar,

Ergün bey siz iki koşula göre satır numarasını bulmak istiyorsunuz. Bu şekilde işlem yapmak için dizi formül kullanmak gerekir. Bildiğim kadarıyla dizi formülleri WorksheetFunction şeklinde yazamıyoruz.

Direk bir WorksheetFunction komutu ile en yakın değeri bulamıyoruz. Ya döngü gerekiyor ya da önermiş olduğum şekilde dizi formülü EVALUATE ile hesaplatıp sonuca gidebilirsiniz.

Eğer istediğiniz biçimde bir yolu varsa bende öğrenmek isterim. Ama bildiğim kadarıyla yok.
 
match_type olarak 1 kullanmışsınız.
biliyorsunuz 3 farklı tip kullanılabiliyor: -1, 0 ve 1
-1 : aranan değer <= en küçük sayı (veri büyükten küçüğe sıralı olmalı)
1 (veya boş) aranan değer >= en büyük sayı (veri küçükten büyüğe sıralı olmalı)
0 : tam eşleşme


not: bir çalışmamda satır no getirmek için ben de match kullanıyorum. çalışmayı ilk oluştururken biraz araştırma yapmıştım. genellikle Application.Match olarak kullanılması tavsiye ediliyor.
 
Geri
Üst