VBA TEMUKAN BERIKUTNYA - Bagaimana Cara Menggunakan Fungsi FindNext di Excel VBA?

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 sama sekali tidak rumit tetapi menemukan semua kemunculan 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 kata, "Temukan Berikutnya" 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 menemukan metode selanjutnya di excel VBA.

Misalnya, lihat data di bawah ini.

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

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. Alamat 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").Find(What:="Bangalore") Rng.Find What:="Bangalore" CellAddress = Rng.Address MsgBox CellAddress End Sub

Step#9 - Run the code and see what we get here.

So we have found the value “Bangalore” in the cell A5. With the Find method, we can find only one cell, so instead of FIND, we need to use FIND NEXT in excel VBA.

Step#10 - We need to reference the range object variable but by using the FIND NEXT method in excel VBA.

Code:

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

As you can see above, we have used the VBA FIND NEXT method, but inside the function, we have used a range object variable name.

Step#11 - Now again, assign the cell address and show the address in the message box.

Code:

Sub RangeNext_Example() Dim Rng As Range Dim CellAdderess As String Set Rng = Range("A2:A12").Find(What:="Bangalore") Rng.Find What:="Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Range("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 () Redupkan FindValue As String FindValue = "Bangalore" Dim Rng As Range Set Rng = Range ("A2: A11") Redupkan FindRng As Range Set FindRng = Rng.Find (What: = FindValue) Redupkan FirstCell As String FirstCell = FindRng.Address Lakukan MsgBox Set FindRng.Address FindRng = Rng.FindNext (FindRng) Loop Saat FirstCell FindRng.Address MsgBox "Pencarian sudah berakhir" End Sub

Langkah # 21 - Ini akan terus menampilkan semua alamat sel yang cocok, dan pada akhirnya, ini akan menampilkan pesan sebagai "Search is Over" di kotak pesan baru.

Hal-hal untuk diingat

  • Metode FIND hanya dapat menemukan satu nilai dalam satu waktu.
  • FIND NEXT di excel VBA dapat menemukan nilai berikutnya dari sel nilai yang sudah ditemukan.
  • Gunakan loop Do While untuk melakukan loop melalui semua sel dalam rentang.

Artikel yang menarik...