Find yöntemi, For Next ve Do Loop döngülerine göre daha hızlı sonuç almamızı sağlar.
LookIn ve LookAt metodları opsiyonel olsa bile son uygulanan metodlar otomatik olarak geçerli olacağı için kullanmamız gerekir.
Aşağıdaki yöntemle sadece bir arama yapacağız:
Sub Basit_Bul_Yontemi()
Dim UrunId As Range
Range("C5").ClearContents
Set UrunId = Range("A:A").Find(what:=Range("B5").Value, _
LookIn:=xlValues, lookat:=xlWhole)
If Not UrunId Is Nothing Then
Range("C5").Value = UrunId.Offset(, 6).Value
Else
MsgBox "Ürün Bulunamadı!"
End If
End Sub
Code language: VB.NET (vbnet)
Aşağıdaki yöntemle birden fazla arama yapacağız:
Sub Many_Finds()
Dim UrunId As Range
Dim i As Long
Dim ilkEslesme As Variant
Range("D2:D7").ClearContents
i = 2
Set UrunId = Range("A:A").Find(what:=Range("B2").Value, _
LookIn:=xlValues, lookat:=xlWhole)
If Not UrunId Is Nothing Then
Range("D" & i).Value = UrunId.Offset(, 6).Value
ilkEslesme = UrunId.Address
Do
Set UrunId = Range("A:A").FindNext(UrunId)
If UrunId.Address = ilkEslesme Then Exit Do
i = i + 1
Range("D" & i).Value = UrunId.Offset(, 6).Value
Loop
Else
MsgBox "Ürün Bulunamadı!"
End If
End Sub
Code language: VB.NET (vbnet)