EXCEL VBA'DA FIND (BUL) FONKSİYONU


 

VBA FIND işlevi, belirtilen bir aralıktaki belirli bir değeri bulmak için kullanılır. Ayrıca, işlev tam veya kısmi bir eşleşme döndürebilir.


VBA'daki Find fonksiyonu, çeşitli permütasyonlar ve kombinasyonlarla verilen hücre aralığında istenen değeri bulmamıza yardımcı olur. VBA Find fonksiyonu, belirtilen hücre aralığında verilen değeri içeren hücreyi döndürür; eşleşme bulunmazsa, hiçbir şey döndürmez. Find, tam veya kısmi olabilir. Örneğin, Excel'deki basit verilere bakın.


VBA Giriş Örneği Bul

Yukarıdaki veri aralığında June değerini bulmamız gerektiğini varsayalım ; ardından Ctrl + F kısayol tuşlarına basarak Bul ve Değiştir penceresini açmalıyız.

VBA Find Intro Örneği - Bul ve Değiştir

Daha sonra Aranan : kutusuna aramamız gereken değeri, yani Haziran değerini giriyoruz .

VBA Find Intro Örneği - Neyi Bul

Daha sonra Sonrakini Bul'a tıklayın ve verilen değer hücresi bulunacaktır.

VBA Find Intro Örneği - Find Next

B2 hücresinde June değerimiz var . Aynı türdeki aktivite VBA'daki FIND işlevi kullanılarak otomatikleştirilebilir.

ÖNEMLİ NOKTALAR

  • VBA FIND, belirli bir hücre aralığındaki belirli bir değeri bulmak için kullanılan bir yöntemdir.
  • VBA FIND, RANGE özelliğinin bir parçasıdır ve ilk parametresi zorunludur.
  • Belirli bir hücreden sonra FIND fonksiyonunu kullanmak için “ After ” argümanını kullanabilirsiniz .
  • Fonksiyonun arama sırası argümanını xlPrevious olarak değiştirerek arama sırasını aşağıdan yukarıya doğru değiştirebiliriz .

VBA'nın FIND Fonksiyonunun Sözdizimi

FIND, VBA'da Range veya Cells nesnesiyle kullanılabilen bir yöntemdir. FIND işlevinin sözdizimi aşağıdaki gibidir:

Range(“Desired Range”).Find(What, [After], [Lookin], [Lookat], [SearchOrder], SearchDirection, [MatchCase], [MatchByte], [SearchFormat] )

TÜRKÇE: Aralık(“İstenen Aralık”).Bul(Ne, [Sonra], [Bakılan], [Bakılan], [AramaSırası], AramaYönetimi, [EşleşmeBüyük/Küçük Harf], [EşleşmeBaytı], [AramaBiçimi] )


Range(“İstenen Aralık”) – VBA’da FIND metoduna erişmek için öncelikle arama yapacağımız hücre aralığını sağlamamız gerekiyor.

Yöntem Sözdizimi Açıklamasını Bul:

Ne – Burada, aradığımız değeri girmemiz gerekiyor. Bu, Excel çalışma sayfasındaki Neyi Bul seçeneğine benzer.

Sonra – Bu argümanda, aramanın başlayacağı hücre adresini sağlayabiliriz. Bunu yoksayarsak, arama veri aralığının sol üst köşesinden başlayacaktır.

Lookin – Bu argümanda, aramanın nerede olması gerektiğinden bahsedebiliriz. Seçenekler şunlardır:

xlComments (yorumlarda arama yapmak için)

xlFormulas (formüllerde arama yapmak için)

xlValues ​​(değerlerde arama yapmak için).

Lookat – Bu argüman, değeri tam veya kısmi olarak eşleştirmek ve hücrenin tamamının veya bir kısmının değerini aramak için kullanılır. İki seçeneğimiz var.

xlWhole tam eşleşme için kullanılır

xlPart kısmi eşleşme için kullanılır

Varsayılan değer xlPart olacaktır.

SearchOrder – Bu argüman, satırlara veya sütunlara göre aramanın sırası için kullanılır. Seçenekler şunlardır:

Satırlara göre arama için xlRows

Sütunlara göre arama için xlColumns

Varsayılan değer xlRows olacaktır.

SearchDirection – Bu argüman aramanın yönü için kullanılır. Yukarı doğru arama için xlPrevious ve aşağı doğru arama için xlNext kullanabiliriz. xlNext varsayılan değerdir.

MatchCase – Bu, büyük/küçük harfe duyarlı arama için kullanılır. Büyük/küçük harfe duyarlı arama yapmak için bu argüman özelliğini TRUE veya FALSE olarak ayarlamamız gerekir. Varsayılan değer FALSE'dir.

MatchByte – Çift baytlı karakterlerin çift baytlı karakterlerle eşleştirilmesi gerekiyorsa bunun TRUE olarak, çift baytlı karakterlerin tek baytlı eşdeğerleriyle eşleştirilmesi gerekiyorsa FALSE olarak belirtilmesi gerekir.

SearchFormat – Bunu kullanarak, arama başladığında izlenecek biçimlendirme tekniğini belirtebiliriz. Argümanı TRUE veya başka türlü FALSE olarak belirtebiliriz. Varsayılan değer FALSE olacaktır.

Not: Sadece Ne argümanı zorunludur.


VBA Excel'in FIND Fonksiyonu Nasıl Kullanılır?

Daha iyi anlamanız için Excel'de VBA FIND fonksiyonunu kullanarak basit bir örnek gösterelim. Örneğin, Excel'deki aşağıdaki verilere bakın.

VBA Giriş Örneği Bul

VBA FIND fonksiyonunu kullanarak Haziran (June) değerini bulmaya çalışacağız .

Adım 1 – İlk olarak makroya bir isim vererek alt prosedürü başlatın.

VBA Kullanımını Bul - Adım 1

Adım 2 – Sonra, bir değişken tanımlayın ve ona VBA değişken türünü String olarak atayın .

VBA Kullanımını Bul - Adım 2

Adım 3 – Bu değişken için Find metodu sonucunu atayacağız. Bu nedenle, değişken adını girin ve ardından eşittir işaretini girin.

VBA Kullanımını Bul - Adım 3

Adım 4 – VBA Find yöntemine erişmek için öncelikle arama yapması gereken hücre aralığını sağlamamız gerekir. Bu nedenle, Range nesnesini kullanarak aralığı A1:D3 olarak sağlayın.

VBA Kullanımını Bul - Adım 4

Adım 5 – Aralığı girdikten sonra noktayı girin ve ardından IntelliSense listesinden Bul yöntemini seçin.

VBA Kullanımını Bul - Adım 5

Adım 6 – Daha sonra parantezi açıyoruz ve ilk argümanı What olarak görüyoruz .

VBA Kullanımını Bul - Adım 6

Adım 7 – Sonra, What argümanı için aradığımız değeri, yani June değerini sağlamamız gerekiyor .

VBA Kullanımını Bul - Adım 7

Adım 8 – Şimdi parantezi kapatın. Verilen değerin hücre adresini bulmamız gerekiyor. Bu nedenle, hücre adresini almak için Cells.Address özelliğini kullanın.

VBA Kullanımını Bul - Adım 8

Adım 9 – O zaman başka hiçbir argüman girmemeliyiz. Değişken değerini bir mesaj kutusunda göstermemiz gerekiyor. Bu nedenle, mesaj kutusu fonksiyonunu girin ve ardından değişken adını girin.

Kullanım - Adım 9

Şimdi bu kodu çalıştıralım ve mesaj kutusunda verilen değerin hücre adresini alalım.

VBA Bul Kullanım - Çıktı

Aradığımız değer B2 hücresindedir.


Örnekler

Örnek 1 – After'ı Find ile Kullanma

Find metodunun uygulanmasının temel örneğini gördük. Şimdi VBA Find fonksiyonunun diğer argümanlarını inceleyelim.

Örneğin aşağıdaki verilere bakalım.

VBA Örnek 1'i Bul

Diyelim ki 'Pune' şehir adını bulmamız gerekiyor, o zaman aşağıdaki kodu kullanabiliriz.

Sub Find_Example_After()
Dim CityName As String
CityName = Range(“A1:B7”).Find(“Pune”).Cells.Address
MsgBox CityName
End Sub

Bu, hücre adresini A2 olarak döndürecektir çünkü bu hücrede 'Pune' şehrinin ilk örneğini bulmuştur.

VBA Bul Örneği 1 - Çıktı

Eğer A2 hücresinden sonraki değeri aramak istiyorsak, Find metodunun After argümanını kullanmamız gerekiyor .

Sub Find_Example_After()
Dim CityName As String
CityName = Range(“A1:B7”).Find(“Pune”, Range(“A2”)).Cells.Address
MsgBox CityName
End Sub

VBA Find metodunun after argümanı için hücre adresini A2 olarak verdik; bu da arama işleminin yalnızca A2 hücresinden sonra başlayacağı anlamına geliyor.

Artık hücrenin adresini A2 olarak değil A4 olarak gösterecek.

Örnek 1 - A4

A2 hücresine bakmak için bulma seçeneğini sağladığımızdan, A2 hücresindeki 'Pune' değeri göz ardı edildi ve bu hücreye göre arama yapıldı ve bir sonraki eşleşen A4 hücresi döndürüldü.

Örnek 2 – LookIn'i Find ile Kullanma

Şimdi, Find fonksiyonunun Lookin argümanının nasıl kullanılacağını öğrenelim . Lookin seçeneği, yorumlarda, formüllerde ve değerlerde istenen değeri bulmak için kullanılır.

Örneğin aynı verinin içine birkaç yorum ekledik.

VBA Örnek 2'yi Bul

A1, B4 ve B7 hücreleri sırasıyla Hindistan, Avustralya ve Hindistan yorumlarını içermektedir.

Varsayalım ki, yorumlarda Australia değerini bulmamız gerekiyor. Sonra, VBA Find yönteminin Lookin argümanını xlComments Threaded olarak ayarlamamız gerekiyor.

Aşağıdaki kod sizin için bir örnektir.

Sub Find_Example_Lookin()
Dim CityName As String
CityName = Range(“A1:B7″).Find(What:=”Avustralya”, LookIn:=xlCommentsThreaded).Cells.Adres
MsgBox CityName
End Sub

Bu, hücre adresini B4 olarak döndürecektir çünkü B4 hücresinde 'Avustralya' şeklinde bir açıklamamız var.

Örnek 2 - Çıktı

Örnek 3 – LookAt'ı Find ile Kullanma

Look at argümanı tam eşleşmeyi veya kısmi eşleşmeyi aramak için kullanılır. Örneğin, aşağıdaki verilere bakın.

VBA Örnek 3'ü Bul

A1 ve A2 hücrelerinde iki değerimiz var. Şimdi, VBA Find yönteminde Lookat argümanının nasıl kullanılacağını görelim .

Look at argümanında xlPart veya xlWhole'u kullanabiliriz. Şimdi, aşağıdaki kodu ele alalım.

Sub Find_Example_Lookat()
Dim CityName As String
CityName = Range(“A1:A2″).Find(What:=”Sidney”, Lookat:=xlWhole).Cells.Address
MsgBox CityName
End Sub

Bu, A2 hücresini bulacaktır çünkü tüm değer A2 hücresindedir.

Benzer şekilde aşağıdaki koda da bakın.

Sub Find_Example_Lookat()
Dim CityName As String
CityName = Range(“A1:A2″).Find(What:=”Sidney”, Lookat:=xlPart).Cells.Address    
MsgBox CityName
End Sub

Bu, yalnızca kısmi değeri bulduğumuz için A1 hücresini bulacaktır.

Örnek 4 – SearchOrder'ı Find ile Kullanma

Arama sırası argümanı, değeri satırlar veya sütunlar aracılığıyla bulmamıza yardımcı olur. Varsayılan olarak, VBA Find yöntemi verilen değeri satırlarda arar. Örneğin, aşağıdaki verilere bakın.

Örnek 4

Aşağıdaki kod, 'Mumbai' şehir adının hücre adresini bulmamıza yardımcı olacaktır.

Sub Find_Example_SearchOrder()
Dim CityName As String
CityName = Range(“A1:D3”).Find(“Mumbai”).Cells.Address
MsgBox CityName
End Sub

Bu kod varsayılan olarak satırlardaki değerleri aradığından B2 hücre adresini döndürmelidir.

Örnek 4 - Çıktı (B2)

Ancak look at argümanını xlColumns olarak ayarlayalım ve ne olacağını görelim.

Sub Find_Example_SearchOrder()
Dim CityName As String
CityName = Range(“A1:B7″).Find(What:=”Mumbai”, SearchOrder:=xlColumns).Cells.Address
MsgBox CityName
End Sub

SearchOrder'ı xlColumns olarak ayarladık ve şimdi ilk sütunda verilen değeri arayacak ve ardından ikinci sütuna geçecek.

VBA Bul Örneği 4 - Çıktı (A7)

Hücre adresini B2 yerine A7 olarak alıyoruz; bunun nedeni, find'ın satır bazında değil sütun bazında gerçekleşmesidir.

Örnek 5 – SearchDirection'ı Find ile Kullanma

Arama yönü değerleri yukarı veya aşağı doğru arayacaktır.

Yukarıdaki kod, A6 hücresinden başlayarak değerleri yukarı doğru arayacaktır, çünkü arama yönünü xlPrevious olarak ayarladık.

Sub Find_Example_SearchDirection()
Dim CityName As String
CityName = Range(“A1:B7″).Find(What:=”Mumbai”, After:=Range(“A6”), SearchDirection:=xlPrevious).Cells.Address
MsgBox CityName
End Sub

Örnek 6 – Find ile MatchCase Kullanımı

MatchCase, verilerin büyük/küçük harfe duyarlı aranması için kullanılır. Örneğin, aşağıdaki verilere bakın.

Örnek 6

Sarı renkli hücrelerde küçük harf değerleri bulunmaktadır.

Bu nedenle, büyük/küçük harfe duyarlı değerleri aramak için MatchCase argümanını TRUE olarak ayarlamamız gerekir.

Sub Find_Example_SearchOrder()
Dim CityName As String
CityName = Range(“A1:B8″).Find(What:=”pune”, MatchCase:=True).Cells.Address
MsgBox CityName
End Sub

Küçük harfli 'Pune' değerini arıyoruz ve eşleşme büyük/küçük harf bağımsız değişkenini TRUE olarak ayarlıyoruz.

Büyük/küçük harfe duyarlı arama nedeniyle A2 hücresinde bir değer olmasına rağmen hücre adresini A8 olarak döndürecektir.

Örnek 6 - Çıktı

Örnek 7 – Find ile MatchByte Kullanımı

Eşleşme baytı bağımsız değişkeni, çift bayt karakter kümesine sahip diller için kullanılır. Bu diller Çince, Japonca ve Korece'dir.

Eğer bu dilleri kullanmıyorsanız bu parametrenin bir önemi yoktur.

Bu argüman değerini TRUE veya FALSE olarak ayarlayabiliriz.

Örnek 8 – Joker Karakterin Kullanımı

Ayrıca find metoduyla joker karakterler de kullanabiliriz. Örneğin, aşağıdaki koda bakın.

Sub Find_Example_WildCard()
Dim CityName As String
CityName = Range(“A1:B8″).Find(What:=”P*”).Cells.Address
MsgBox CityName
End Sub

Yukarıdaki kodda, bulunan değeri 'P*' olarak verdik, yani P ile başlayan herhangi bir değer bu joker yıldız işaretiyle (*) alınacaktır.

Örnek 9 – Veri İçeren Son Hücreyi Bulma

Excel'de işlem yapabilmek için son kullanılan hücreyi dinamik olarak bulmak önemlidir.

Aşağıdaki kod çalışma sayfasındaki son kullanılan hücreyi bulmamıza yardımcı olacaktır.

Sub Find_Example_LastCell()
Dim LR As Long
LR = Hücreler(Satırlar.Sayı, 1).Son(xlYukarı).Satır
MsgBox LR
End Sub

Bu, etkin çalışma sayfasının son kullanılan satırını döndürecektir.

Örnek 10 – Desenlere Sahip Hücreleri Bulma

Herhangi bir biçimlendirmeye sahip hücreleri bulmak istiyorsanız, SearchFormat'ı TRUE olarak ayarlamamız gerekir. Örneğin, aşağıdaki verilere bakın.

Örnek 9

Renklerle biçimlendirilmiş 3 hücremiz var. Aşağıdaki kod, uygulanan hücrelerin biçimini bulmamıza yardımcı olacaktır.

End Sub Find_Example_WildCard()
Dim CityName As String
CityName = Range(“A1:B8″).Find(What:=”P*”).Cells.Address
MsgBox CityName
End Sub

Yukarıdaki kod ilk biçimlendirme hücresini, yani A2 hücresini arayacaktır.

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA FIND, bir değeri bulmak için kullanılan bir yöntemdir ve yalnızca hücre aralığına bir referans sağladığımızda erişilebilir.
  • What parametresi tek zorunlu argümandır, geri kalanlar isteğe bağlıdır.
  • VBA'da, Bul işlemi her zaman satırlara göre yukarıdan aşağıya doğru gerçekleşir.
  • Belirtilen aralıkta verilen değer bulunamazsa çalışma zamanı hatası alırız.
  • Excel'de joker karakter (*) herhangi sayıda karakterle eşleşmek için kullanılır.

Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...