İçindekiler
'da kullandığımız en önemli ve yaygın olarak kullanılan fonksiyonlardan biri Visual Basic Uygulaması (VBA) Bu makalede, Find fonksiyonunu nasıl kullanabileceğinizi göstereceğim. FIND işlevi Excel'in uygun örnekler ve çizimlerle anlatılması.
Alıştırma Çalışma Kitabını İndirin
Excel.xlsm'de VBA'da İşlev BulmaVBA'da FIND İşlevini Kullanmak için 6 Hızlı Örnek
Burada bir veri setimiz var Kitap İsimleri, Yazarlar ve Fiyatlar Martin Bookstore adında bir kitapçının bazı kitaplarının.
Bugünkü amacımız, çeşitli kullanım türlerini görmektir. Fonksiyon bulma . VBA bu veri setinden.
1. VBA'da Parametre Olmadan Bul İşlevini Kullanın
Kullanabilirsiniz Fonksiyon bulma . VBA parametre olmadan.
Ardından, bir hücre aralığı içinde belirli bir değeri arayacak ve bulduğu ilk eşleşmeyi döndürecektir.
İsmi arayalım "P. B. Shelly" sütununda Yazar ( C4:C13 ).
ile çizgi Fonksiyon bulma olacak:
Set cell = Range("C4:C17").Find("P. B. Shelly")
Eksiksiz VBA kodu olacak:
⧭ VBA Kodu:
Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub
⧭ Çıktı:
Bu bir üretir Makro aradı Bul . Makroyu çalıştırırsanız, şu sonuçları verecektir $C$6 , adı ile ilk hücre adresi P. B. Shelly .
Daha fazlasını okuyun: Excel'de VBA ile Bir Aralık İçinde Bulma: Tam ve Kısmi Eşleşmeleri Dahil Etme
2. VBA'da Bul İşlevini After Parametresi ile Uygulayın (Aramaya Belirli Bir Hücreden Başlamak İçin)
Kullanabilirsiniz Sonra parametresi ile Fonksiyon bulma içinde VBA Ardından, bir aralık içindeki bir hücrenin altından bir değer aramaya başlayacaktır.
Örneğin, şu ismi aramaya başlayalım "P. B. Shelly" aşağıdaki hücreden C6 .
Kod satırı şöyle olacaktır:
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))
Ve tam VBA kodu olacak:
⧭ VBA Kodu:
Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub
⧭ Çıktı:
Geri dönecek $C$13 çünkü aramaya hücrenin altından başlar C6 Bu hücreden. C7 Bu yüzden P. B. Shelly hücre içinde C13 Birincisi.
Daha fazlasını okuyun: Excel'de VBA Kullanarak Bir Hücredeki Dizeyi Bulma
3. VBA'da Bul İşlevini After Parametresinin Etrafına Sararak Çalıştırın (Bir Değeri Dairesel Bir Şekilde Aramak İçin)
Bu Sonra parametresi ile Fonksiyon bulma dairesel bir şekilde bir değer arar
Yani, bir aralıktaki bir hücrenin altından aramaya başlar, aralıkta aramayı bitirir ve ardından aralığın üstünden tekrar başlar.
Örneğin, şu ismi aramaya başlayalım "John Keats" aşağıdaki hücreden C8 kullanarak Sonra parametre.
Kod satırı şöyle olacaktır:
Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))
Ve tam VBA kodu olacak:
⧭ VBA Kodu:
Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub
⧭ Çıktı:
Geri dönecek $C$7 çünkü aramaya hücrenin altından başlar C8 Bu hücreden. C9 .
Hücreye kadar hiçbir şey bulamıyor C13 , bu yüzden yine hücreden başlar C4 ve hücrede bir tane bulur C7 .
Benzer Okumalar:
- Excel'de VBA ile String Nasıl Bulunur (8 Örnek)
- Excel'de VBA Kullanarak Tam Eşleşmeyi Bulma (5 Yol)
- VBA Kullanarak Bulma ve Değiştirme (11 Yol)
4. LookAt Parametresi ile VBA'da Bul İşlevini Kullanın (Tam veya Kısmi Eşleşme için)
Kullanabilirsiniz Fonksiyon bulma içinde VBA ile Bak parametre.
Kullanım LookAt = xlWhole için Tam olarak eşleşme ve LookAt=xlPart için Kısmi Maç.
Örneğin, şu isimde bir kitap olup olmadığını bulmaya çalışalım "Ode" içinde Kitap Adı sütun ( B4:B13 ).
Eğer kullanırsak xlBütün kod satırında:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)
Çıktı bir hata gösterecektir çünkü herhangi bir tam olarak Maç.
Ama eğer kullanırsan:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)
Sonra geri dönecek. $B$9 Çünkü bu isimde bir kitap var. "Ode" hücrenin içinde B7 , Ode to the Nightingale.
Bu yüzden aşağıdaki kodun tamamı KISMİ eşleşme:
⧭ VBA Kodu:
Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub
5. VBA'da Bul Fonksiyonunu SearchDirection Parametresi ile Çalıştırın (Aramanın Yönünü Belirtmek İçin)
Ayrıca şunları da kullanabilirsiniz Fonksiyon bulma içinde VBA ile SearchDirection parametre.
Kullanım SearchDirection = xlNext arama yapmak için Yukarıdan Aşağıya .
Ve SearchDirection = xlPrevious arama yapmak için Aşağıdan Yukarıya .
Örneğin, Yazar'ı bulmaya çalışalım Elif Şafak sütununda Yazar ( C4:C13 ).
Eğer kullanırsak xlSonraki kod satırında:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)
Sonra geri dönecek $C$5 .
Ama eğer kullanırsan:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)
Sonra geri dönecek. $C$11 .
Yani arama yapmak için tüm kod aşağıdan yukarıya öyle:
⧭ VBA Kodu:
Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub
6. MatchCase Parametresi ile VBA'da Bul Fonksiyonu (Büyük/Küçük Harfe Duyarlı veya Duyarsız Eşleştirme için)
Son olarak, şunları kullanabilirsiniz Fonksiyon bulma ile MatchCase parametre.
Kullanım MatchCase = True için büyük/küçük harfe duyarlı maç , ve MatchCase=False için büyük/küçük harf duyarsız Maç.
Örneğin, şu kitabı bulmaya çalışalım "ANNE" içinde Kitap Adı sütun ( B4:B13 ).
Kod satırında True kullanırsak:
Set cell = Range("B4:B13").Find("mother", MatchCase:=True)
Herhangi bir eşleşme bulamayacağı için çıktı bir hata gösterecektir.
Ama eğer kullanırsan:
Set cell = Range("B4:B13").Find("mother", MatchCase:=False)
Sonra geri dönecek. $B$9 çünkü bir kitap var "Anne" hücre içinde B8 .
Bu yüzden aşağıdaki kodun tamamı büyük/küçük harf duyarsız eşleşme:
⧭ VBA Kodu:
Sub Find() Set cell = Range("B4:B13").Find("Anne", MatchCase:=False) MsgBox cell.Address End Sub
Sonuç
Bu yöntemleri kullanarak Visual Basic Uygulamasında Bul Fonksiyonunu kullanabilirsiniz. Herhangi bir sorunuz var mı? Bize sormaktan çekinmeyin.