VBA'da Bul Fonksiyonu Nasıl Kullanılır (6 Örnek)

  • Bunu Paylaş
Hugh West

'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 Bulma

VBA'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.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.