VBA Temukan Berikutnya

Excel VBA Temukan Berikutnya

Seperti di excel ketika kita menekan CTRL + F, sebuah kotak wizard muncul yang memungkinkan kita untuk mencari nilai di lembar kerja yang diberikan dan setelah nilainya ditemukan, kita klik temukan di sebelah untuk menemukan nilai serupa lainnya, karena ini adalah fitur lembar kerja kita bisa juga menggunakannya di VBA sebagai metode properti Aplikasi sebagai application.findnext untuk tujuan yang sama.

Menemukan nilai spesifik dalam rentang yang disebutkan tidak masalah, tetapi bagaimana jika persyaratannya adalah menemukan nilai dengan banyak kemunculan. Di salah satu artikel sebelumnya, kita telah membahas metode "Temukan" di VBA dan itu tidak rumit sama sekali, tetapi menemukan semua kejadian berulang hanya mungkin dengan metode "Temukan Berikutnya" di excel VBA.

Pada artikel ini, kami akan menunjukkan cara menggunakan "Temukan Berikutnya" di Excel VBA.

Apa itu Find Next di Excel VBA?

Seperti kata "Find Next" berarti dari sel yang ditemukan terus mencari nilai berikutnya sampai kembali ke sel asli tempat kita memulai pencarian.

Ini adalah versi lanjutan dari metode "Temukan" yang hanya mencari satu kali nilai yang disebutkan dalam rentang yang disebutkan.

Di bawah ini adalah sintaks dari metode FIND NEXT di Excel VBA.

Sesudah: Ini adalah kata yang kita cari.

Contoh Temukan Metode Berikutnya di Excel VBA

Di bawah ini adalah Contoh find next method di excel VBA.

Misalnya, lihat data di bawah ini.

Anda dapat mendownload Template VBA Find Next Excel ini di sini - VBA Find Next Excel Template

Langkah # 1 - Dalam data ini, kita perlu mencari nama kota "Bangalore". Mari kita mulai subprocedure di editor visual basic.

Kode:

 Sub RangeNext_Example () End Sub 

Langkah # 2 - Pertama, deklarasikan variabel sebagai objek "Range".

Kode:

 Sub RangeNext_Example () Dim Rng Sebagai Range End Sub 

Langkah # 3 - Tetapkan referensi untuk variabel objek sebagai "Range (" A2: A11 ").

Kode:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") End Sub 

Karena data daftar kota kita ada dalam kisaran sel dari A2 hingga A11 dalam kisaran ini, hanya kita yang akan mencari kota “Bangalore”.

Karena kami menetapkan referensi rentang ke variabel "Rng" kami menggunakan variabel ini daripada menggunakan RANGE ("A2: A11") setiap saat.

Langkah # 4 - Gunakan variabel RNG dan buka metode Find.

Kode:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") Rng. Find End Sub 

Langkah # 5 - Argumen pertama dari metode FIND adalah "Apa" yaitu apa yang kita coba cari dalam kisaran yang disebutkan, jadi nilai yang kita cari adalah "Bangalore".

Kode:

 Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") Rng. Find What: = "Bangalore" End Sub 

Langkah # 6 - Untuk menunjukkan di sel mana kami menemukan nilai ini mendeklarasikan satu variabel lagi sebagai string.

Kode:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12") Rng. Find What: = "Bangalore" End Sub 

Langkah # 7 - Untuk variabel ini tetapkan alamat sel yang ditemukan.

Kode:

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

Catatan: RNG.Address karena RNG akan memiliki referensi untuk sel nilai yang ditemukan.

Langkah # 8 - Sekarang tunjukkan hasil variabel alamat sel yang ditetapkan di kotak pesan di VBA.

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Temukan (What: = "Bangalore") Rng. Temukan Apa: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress End Sub 

Langkah # 9 - Jalankan kode dan lihat apa yang kita dapatkan di sini.

Jadi kami telah menemukan nilai "Bangalore" di sel A5. Dengan metode Find, kita hanya dapat menemukan satu sel jadi daripada FIND kita perlu menggunakan FIND NEXT di excel VBA.

Langkah # 10 - Kita perlu mereferensikan variabel range object tetapi dengan menggunakan metode FIND NEXT di excel VBA.

Kode:

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

Seperti yang Anda lihat di atas, kami telah menggunakan metode VBA FIND NEXT tetapi di dalam fungsinya, kami telah menggunakan nama variabel objek rentang.

Langkah # 11 - Sekarang tetapkan kembali alamat sel dan tunjukkan alamat di kotak pesan.

Kode:

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

Langkah # 12 - Jalankan makro dan lihat apa yang kita dapatkan di kotak pesan pertama.

Langkah # 13 - Kotak pesan pertama menunjukkan nilai "Bangalore" yang ditemukan di sel A5, klik tombol Ok untuk melihat nilai yang ditemukan berikutnya.

Nilai kedua yang ditemukan di sel A7, tekan Ok untuk melanjutkan.

VBA Temukan Berikutnya (Menggunakan Loop)

Ini akan keluar dari subprocedure VBA tetapi kami satu lagi dapat ditemukan di sel A10. Jika nilai ditemukan di lebih dari satu sel maka sebaiknya gunakan loop.

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 Rng As Range Set Rng = Range("A2:A11") Dim FindRng As Range Set FindRng = Rng.Find(What:=FindValue) Dim FirstCell As String FirstCell = FindRng.Address Do MsgBox FindRng.Address Set FindRng = Rng.FindNext(FindRng) Loop While FirstCell  FindRng.Address MsgBox "Search is over" End Sub 

Step#21 – This will keep showing all the matching cell address and in the end, it will show the message as “Search is Over” in the new message box.

Things to Remember

  • FIND method can find only one value at a time.
  • FIND NEXT in excel VBA can find the next value from the already found value cell.
  • Use Do While loop to loop through all the cells in the range.