VBA SONRAKİ BUL - Excel VBA'da FindNext Fonksiyonu Nasıl Kullanılır?

Excel VBA Sonrakini Bul

Excel'de olduğu gibi, CTRL + F tuşlarına bastığımızda, verilen çalışma sayfasında bir değeri aramamıza izin veren bir sihirbaz kutusu açılır ve değer bulunduğunda, diğer benzer değeri bulmak için yanındaki bul'a tıklarız, çünkü bu bir çalışma sayfası özelliğidir. aynı amaçlar için application.findnext olarak VBA'da Application özelliği yöntemi olarak da kullanabilir.

Belirtilen aralıkta belirli bir değeri bulmak gayet iyi, ancak şart, değeri birden çok kez bulmaksa ne olur? Daha önceki makalelerden birinde, VBA'daki "Bul" yöntemini tartıştık ve bu hiç de karmaşık değil, ancak tüm tekrar eden olayları bulmak sadece excel VBA'daki "Sonrakini Bul" yöntemiyle mümkündür.

Bu makalede, Excel VBA'da bu "Sonrakini Bul" u nasıl kullanacağınızı göstereceğiz.

Excel VBA'da Sonrakini Bul nedir?

Kelimenin dediği gibi, "Sonrakini Bul", bulunan hücreden, aramaya başladığımız orijinal hücreye geri dönene kadar sonraki değeri aramaya devam et anlamına gelir.

Bu, belirtilen aralıkta belirtilen değeri yalnızca bir kez arayan "Bul" yönteminin gelişmiş sürümüdür.

Excel VBA'da SONRAKİ BUL yönteminin sözdizimi aşağıdadır.

Sonra: Aradığımız kelime.

Excel VBA'da Sonraki Bul Yöntemine Örnekler

Aşağıda, excel VBA'da sonraki yöntemi bulma örnekleri verilmiştir.

Örneğin, aşağıdaki verilere bakın.

1. Adım - Bu verilerde "Bangalore" şehir adını bulmamız gerekiyor. Alt prosedüre temel görsel düzenleyicide başlayalım.

Kod:

Alt AralıkNext_Example () End Sub

Adım # 2 - İlk önce değişkeni "Aralık" nesnesi olarak bildirin.

Kod:

Alt AralıkNext_Example () Aralık Sonu Alt Olarak Dim Aralığı

Adım # 3 - Nesne değişkeni için referansı "Aralık (" A2: A11 ") olarak ayarlayın.

Kod:

Alt AralıkNext_Example () Dim Aralığı Aralık Olarak Ayarla Aralığı = Aralık ("A2: A12") Son Alt

Şehir listesiyle ilgili verilerimiz bu aralıkta A2'den A11'e kadar olan hücrelerde bulunduğundan, yalnızca "Bangalore" şehrini arayacağız.

Aralık referansını "Rng" değişkenine ayarladığımız için, her seferinde RANGE ("A2: A11") kullanmak yerine bu değişkeni kullanırız.

Adım # 4 - RNG değişkenini kullanın ve Bul yöntemini açın.

Kod:

Alt AralıkNext_Example () Dim Aralığı Aralık Olarak Ayarla Aralığı = Aralık ("A2: A12") Rng.Find End Sub

Adım # 5 - FIND yönteminin ilk argümanı "Ne" dir, yani bahsedilen aralıkta aramaya çalıştığımız şey, yani aradığımız değer "Bangalore" dir.

Kod:

Alt AralıkNext_Example () Dim Aralığı Aralık Olarak Ayarla Aralığı = Aralık ("A2: A12") Rng.Ne Bul: = "Bangalore" End Sub

Adım # 6 - Bu değeri hangi hücrede bulduğumuzu göstermek için bir değişken daha dize olarak bildirin.

Kod:

Alt AralıkNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12") Rng.Ne Bul: = "Bangalore" End Sub

Adım # 7 - Bu değişken için bulunan hücre adresini atayın.

Kod:

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng.Neyi Bul: = "Bangalore" CellAddress = Rng.Address End Sub
Not: RNG. Adres, çünkü RNG, bulunan değer hücresi için referansa sahip olacaktır.

Adım # 8 - Şimdi, atanan hücre adresi değişkeni sonucunu VBA'daki mesaj kutusunda gösterin.

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng.Ne Bul: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress End Alt

Adım # 9 - Kodu çalıştırın ve burada ne alacağımızı görün.

Böylece A5 hücresinde "Bangalore" değerini bulduk. Find metodu ile sadece bir hücre bulabiliyoruz, bu yüzden FIND yerine FIND NEXT'i excel VBA'da kullanmamız gerekiyor.

Adım # 10 - Aralık nesnesi değişkenine başvurmamız gerekiyor, ancak excel VBA'da NEXT BUL yöntemini kullanarak.

Kod:

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng.Ne Bul: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Aralık ("A2: A12"). Sonrakini Bul (Rng) Son Alt

Yukarıda görebileceğiniz gibi, VBA FIND NEXT yöntemini kullandık, ancak fonksiyonun içinde bir aralık nesnesi değişken adı kullandık.

Adım # 11 - Şimdi tekrar, hücre adresini atayın ve adresi mesaj kutusunda gösterin.

Kod:

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Find (What: = "Bangalore") Rng.Ne Bul: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Aralık ("A2: A12"). FindNext (Rng) CellAddress = Rng.Address MsgBox CellAddress End Sub

Step#12 - Run the macro and see what we get in the first message box.

Step#13 - The first message box shows the value “Bangalore” found in the cell A5. Click on the Ok button to see the next found value.

The second value found in A7 cell, press Ok to continue.

VBA Find Next (Using Loop)

It will exit the VBA subprocedure, but we are one more to be found in cell A10. When the values are to be found in more than one cell, then it is a better idea to use loops.

In this case, too, we have value “Bangalore” in more than one cell, so we need to include loops here.

Step#14 - First, declare two variables as the range.

Code:

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range End Sub

Step#15 - Set the reference for the first variable, as shown below.

Code:

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range Set Rng = Range("A2:A11").Find(What:="Bangalore") End Sub

Step#16 - For the second variable, set the reference by using the FIND VBA function.

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range Set Rng = Range("A2:A11").Find(What:="Bangalore") Set FindRng = Rng.FindNext("Bangalore") End Sub

Step#17 - Before we start searching for the value, we need to identify from which cell we are starting the search, for that declares the variable as a string.

Code:

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range Set Rng = Range("A2:A11").Find(What:="Bangalore") Set FindRng = Rng.FindNext("Bangalore") Dim FirstCell As String FirstCell = Rng.Address End Sub

Step#18 - For this variable, assign the first cell address.

Code:

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range Set Rng = Range("A2:A11") Set FindRng = Rng.Find(What:="Bangalore") Dim FirstCell As String FirstCell = Rng.Address End Sub

Step#19 - Now, we need to include the “Do While” loop to loop through all the cells and find the searching value.

Code:

Sub RangeNext_Example1() Dim Rng As Range Dim FindRng As Range Set Rng = Range("A2:A11").Find(What:="Bangalore") Set FindRng = Rng.FindNext("Bangalore") Dim FirstCell As String FirstCell = Rng.Address Do Loop While FirstCell Cell.Address End Sub

Inside the loop, mention the message box and VBA FIND NEXT method.

Step#20 - Below is the complete code for you.

Code:

Sub FindNext_Example () Dim FindValue As String FindValue = "Bangalore" Dim Aralığı Aralık Olarak Ayarla Rng = Aralık ("A2: A11") Dim FindRng as Range Set FindRng = Rng.Find (Ne: = FindValue) Dize Olarak Dim FirstCell FirstCell = FindRng.Address MsgBox FindRng.Address Ayarla FindRng = Rng.FindNext (FindRng) Döngüsünü FirstCell FindRng.Address MsgBox "Arama bitti" End Sub

Adım # 21 - Bu, eşleşen tüm hücre adreslerini göstermeye devam edecek ve sonunda, mesajı yeni mesaj kutusunda "Arama Bitti" olarak gösterecektir.

Hatırlanacak şeyler

  • FIND yöntemi bir seferde yalnızca bir değer bulabilir.
  • Excel'de SONRAKİ BUL VBA, önceden bulunan değer hücresinden sonraki değeri bulabilir.
  • Aralıktaki tüm hücrelerde döngü yapmak için Do While döngüsünü kullanın.

Ilginç makaleler...