Match ve Find Komutu farkı?

Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
26-11-2023
k=sheets(1).range("c1:c300").find(sheets(2).cells(4,2).value).row

k=WorksheetFunction.Match(sheets(2).Cells(4, 2), Sheets(1).Range("c1:c300"), 0)

benim istediğim bu iki makro arasındaki fark ne?

birde bulamadığında bir sonrakine devam et gibi bişey yapabilir miyim?
on error resume next kullanamıyorum. Çünkü on error go to son komutum var. birden fazla on error kullanamıyormuşum.
Yani hangisi daha kullanışlı. Bulunmadığında?

İnşallah anlatabilmişimdir?
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,573
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
ikisinin arasında fark hızmış galiba.
find vba tarafındaki karşılık, match ise çalışma sayfasındaki ama aşağıdaki sitedeki açıklamalara bakılırsa match daha hızlı sonuç veriyor.
sayfadaki "Conclusions" kısmına bakarsanız,
-find metodunu daha fazla sayıda sütun içinde arama yapacağınız zaman kullanın diyor.
-Match metodu az sayıda sütun için daha hızlıymış.

ayrıntılı teknik bilgi ve örnekler için bkz. (İngilizce)
https://fastexcel.wordpress.com/2011/10/26/match-vs-find-vs-variant-array-vba-performance-shootout/
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
26-11-2023
Teşekkürler. Match daha işime yarar o zaman. çünkü 40 satırlık bir kısımda arama yapıyorum.
Peki bulamadığında buna 0 değerini atamak gibi bir makroyu nasıl yapabilirim? On error olmadan :(
her bulamayışında otomatikman hata verdiriyor da :(
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Find derim,başka bir şey demem.
Buyurun.Yoksa 0 veriyor.
Kod:
Dim k As Range
Set k = Sheets(1).Range("c1:c300").Find(Sheets(2).Cells(4, 2).Value, , xlValues, xlWhole)
If k Is Nothing Then
    MsgBox 0
Else
    'Kodlarınız
End If
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
26-11-2023
Yarın deneyeceğim. Tşk ederim ilginiz için. Sonuçları yarın yazarım.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
satırı bulur.:cool:
Kod:
Dim k As Range
Set k = Sheets(1).Range("c1:c300").Find(Sheets(2).Cells(4, 2).Value, , xlValues, xlWhole)
If k Is Nothing Then
    MsgBox 0
Else
    'Kodlarınız
   msgbox  k.row 
End If
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
26-11-2023
Allah razı olsun. Çook teşekkür ederim. Tam istediğim şey olmuş.
 
Katılım
27 Ocak 2014
Mesajlar
18
Excel Vers. ve Dili
Exel 2010
Altın Üyelik Bitiş Tarihi
24.05.2022
Arkadaşlar;
Sayfa3 O11 de tarih var. Örneğin "2 Şubat"
Sayfa3 Q15 te saat var. Örneğin "07:00 - 08:00"
Sayfa1 de tablom var. C sütununda tarihler var ve 2. satırda da saatler var.
Bu bilgilere göre Sayfa3 P16 ya Sayfa1 de kesiştiği hücre olan E16 da ki "SEMİH" metnini
Sayfa3 P17 ye Sayfa1 de karşılığı olan E17 de ki "ATEŞ" metnini
Sayfa3 P18 ye Sayfa1 de karşılığı olan E18 de ki "888" değerini getiremiyorum. Amacım ekte gönderdiğim ekte randevuları kimin aldığını görmek, silmek ya da düzenlemek, fakat getiremedim. Yardımcı olur musunuz?
Kod:
Sub Düğme5_Tıkla()
Set S1 = Sheets("Sayfa1"): Set s3 = Sheets("Sayfa3")
aranansat = s3.[O11]
aranansut = s3.[Q15]
Set ara = s3.Range("C:C").Find(aranansat, aranansut)
s3.[P16] = S1.Cells(s1Sat, s1sut)
s3.[P17] = S1.Cells(s1Sat + 1, s1sut)
s3.[P18] = S1.Cells(s1Sat + 2, s1sut)
end Sub
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Sayın @bsemihates sorunuzun bu konu sayfasıyla bir alakasını göremiyorum doğrusu.
Sorularınızı/destek isteklerinizi, ilgiliyse kendi açtığınız konu sayfasından, değilse de yeni bir konu açarak sormanızda yarar var.

Böylece forum düzenine de katkı vermiş, benzer sorunu/ihtiyacı olan üyelerin de soru ve çözüme kolay ulaşmasını sağlamış olursunuz.
Aynı soruyu alakasız konu sayfalarında tekrarlayarak sonuca ulaşmanız pek mümkün değil diye düşünüyorum.
Forum yöneticilerinden, bu konu sayfasındaki sorunuzu ilgili konu sayfasına taşımalarını isteyebilir veya yeni bir konu açabilirsiniz.

İyi çalışmalar dilerim.
.
 
Katılım
27 Ocak 2014
Mesajlar
18
Excel Vers. ve Dili
Exel 2010
Altın Üyelik Bitiş Tarihi
24.05.2022
Merhaba, Arkadaşlar kusura bakmayın. Çok araştırma yaptım sorum ile ilgili, alakalı olduğum yerlerden toplayabileceğim bilgilerle yapabileceğimi düşündüğüm için yazmıştım. Bize ulaşın bölümüne bağlantıları göndererek kaldırılmasını rica ettim. Saygılar.
 
Katılım
18 Mart 2007
Mesajlar
171
Excel Vers. ve Dili
OFFICE 2016
Altın Üyelik Bitiş Tarihi
02-03-2024
satırı bulur.:cool:
Kod:
Dim k As Range
Set k = Sheets(1).Range("c1:c300").Find(Sheets(2).Cells(4, 2).Value, , xlValues, xlWhole)
If k Is Nothing Then
    MsgBox 0
Else
    'Kodlarınız
   msgbox  k.row
End If
Selamlar üstad excelin 1. satırında üst bilgi olarak başlıklar var. Ben sütun sayısını bulmak istiyorum. Find ile sütun sayısını nasıl bulurum. Sayfa2.Range("A1") hücresinde bulunan değeri sayfa2 sayfasında Range("A1:XFD1") satırında aratıp A1'deki değerin sütun sayısını bulmaya çalışıyorum. Yardımcı olursanız çok mutlu olurum.
 
Üst