VBA MEGÁLLÍTÁS - Hogyan kell használni a FindNext függvényt az Excel VBA-ban?

Tartalomjegyzék

Excel VBA Find Next

Mint az excelben, amikor megnyomjuk a CTRL + F billentyűkombinációt, felbukkan egy varázsló mező, amely lehetővé teszi számunkra, hogy az adott munkalapon keressünk egy értéket, és amint az érték megtalálható, a következő gombra kattintva találjuk meg a másik hasonló értéket, mivel ez egy munkalapfunkció felhasználhatja a VBA-ban Application tulajdonság módszerként, mint application.findnext ugyanazokra a célokra.

A konkrét érték megtalálása az említett tartományban rendben van, de mi van akkor, ha meg kell találni az értéket többszörös előfordulással. Az egyik korábbi cikkben megvitattuk a VBA „Find” módszerét, és ez egyáltalán nem összetett, de az összes ismétlődő esemény megtalálása csak az excel VBA „Find Next” módszerével lehetséges.

Ebben a cikkben bemutatjuk, hogyan kell használni ezt a „Find Next” -t az Excel VBA-ban.

Mi a következő keresése az Excel VBA-ban?

Ahogy a szó mondja, a „Következő keresése” azt jelenti, hogy a megtalált cellából folytatja a következő érték keresését, amíg vissza nem tér az eredeti cellába, ahol megkezdtük a keresést.

Ez a „Find” metódus speciális verziója, amely csak egyszer keresi az említett értéket az említett tartományban.

Az alábbiakban találja a FIND NEXT módszer szintaxisát az Excel VBA-ban.

Utána: Ezt a szót keressük.

Példák a következő módszer keresésére az Excel VBA-ban

Az alábbiakban bemutatjuk a következő módszer megtalálási példáit az excel VBA-ban.

Nézze meg például az alábbi adatokat.

1. lépés - Ezekben az adatokban meg kell találnunk a „Bangalore” nevet. Indítsuk el az alfolyamatot az alapvető vizuális szerkesztőben.

Kód:

Sub RangeNext_Example () End Sub

2. lépés - Először deklarálja a változót „Range” objektumként.

Kód:

Sub RangeNext_Example () Dim Rng As Range End Sub

3. lépés - Állítsa be az objektumváltozó referenciáját „Tartomány („ A2: A11 ”) értékre.

Kód:

Sub RangeNext_Example () Dim Rng As Range Set Rng = Tartomány ("A2: A12") Vége Sub

Mivel a várólistára vonatkozó adataink az A2 és A11 közötti cellatartományban vannak ebben a tartományban, csak mi keressük a „Bangalore” várost.

Mivel a tartomány referenciát az „Rng” változóra állítottuk be, ezt a változót használjuk a RANGE („A2: A11”) helyett.

4. lépés - Használja az RNG változót, és nyissa meg a Keresés módszert.

Kód:

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

5. lépés - A FIND módszer első argumentuma a „Mi”, azaz mi az, amit megpróbálunk keresni az említett tartományban, tehát a keresett érték „Bangalore”.

Kód:

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

6. lépés - annak megmutatásához, hogy melyik cellában találtuk ezt az értéket, deklaráljon még egy változót stringként.

Kód:

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

7. lépés - Ehhez a változóhoz rendelje hozzá a megtalált cellacímet.

Kód:

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess as String Set Rng = Tartomány ("A2: A12"). Keresse meg (Mit: = "Bangalore") Rng.Find Mit: = "Bangalore" CellAddress = Rng.Address End Sub
Megjegyzés: RNG. Cím, mert az RNG-nek lesz referenciája a talált érték cellához.

8. lépés - Most mutassa meg a hozzárendelt cellacím-változó eredményét a VBA üzenetmezőjében.

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 () 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) hurok, míg a FirstCell FindRng.Address MsgBox "A keresés vége" End Sub

21. lépés - Ez folyamatosan megjeleníti az összes egyező cellacímet, és végül az új üzenetmezőben a keresés befejeződött.

Dolgok, amikre emlékezni kell

  • A FIND módszer egyszerre csak egy értéket képes megtalálni.
  • A KÖVETKEZŐ MEGTALÁLÁSA az excel VBA-ban megtalálja a következő értéket a már megtalált értékcellából.
  • Használja a Do While ciklust a tartomány összes cellájának végigvezetéséhez.

érdekes cikkek...