VBA FINN NESTE - Hvordan bruker jeg FindNext-funksjonen i Excel VBA?

Innholdsfortegnelse

Excel VBA Finn neste

Som i excel når vi trykker CTRL + F, dukker det opp en veiviserboks som lar oss søke etter en verdi i det gitte regnearket, og når verdien er funnet, klikker vi på finn ved siden av for å finne den andre lignende verdien, da det er en regnearkfunksjon kan også bruke den i VBA som Application-egenskapsmetode som application.findnext til samme formål.

Å finne den spesifikke verdien i det nevnte området er greit, men hva om kravet er å finne verdien med flere forekomster. I en av de tidligere artiklene har vi diskutert "Finn" -metoden i VBA, og den er ikke komplisert i det hele tatt, men å finne alle de gjentatte forekomster er bare mulig med "Finn neste" -metoden i excel VBA.

I denne artikkelen vil vi vise deg hvordan du bruker denne "Finn neste" i Excel VBA.

Hva er Finn neste i Excel VBA?

Som ordet sier, betyr "Finn neste" fra den funnet cellen fortsetter å lete etter neste verdi til den returnerer tilbake til den opprinnelige cellen der vi har startet søket.

Dette er den avanserte versjonen av "Finn" -metoden, som bare søker en gang den nevnte verdien i det nevnte området.

Nedenfor er syntaksen til FINN NESTE-metoden i Excel VBA.

Etter: Det er ordet vi søker etter.

Eksempler på Finn neste metode i Excel VBA

Nedenfor er eksemplene på å finne den neste metoden i excel VBA.

Se for eksempel på dataene nedenfor.

Trinn 1 - I disse dataene må vi finne bynavnet "Bangalore." La oss starte underprosedyren i den grunnleggende visuelle redigereren.

Kode:

Sub RangeNext_Example () End Sub

Trinn 2 - Forklar først variabelen som "Range" -objekt.

Kode:

Sub RangeNext_Example () Dim Rng As Range End Sub

Trinn 3 - Sett referansen til objektvariabelen som "Område (" A2: A11 ").

Kode:

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

Siden dataene våre fra bylisten er der i celleområdet fra A2 til A11 i dette området, er det bare vi som skal søke etter byen "Bangalore."

Siden vi setter områdereferansen til variabelen “Rng”, bruker vi denne variabelen i stedet for å bruke RANGE (“A2: A11”) hver gang.

Trinn 4 - Bruk RNG-variabelen og åpne Finn-metoden.

Kode:

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

Trinn 5 - Det første argumentet for FINN-metoden er "Hva", dvs. det vi prøver å søke i det nevnte området, så verdien vi søker er "Bangalore."

Kode:

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

Trinn 6 - For å vise i hvilken celle vi har funnet denne verdien, erklær en variabel til som en streng.

Kode:

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

Trinn 7 - For denne variabelen, tildel den funnet celle-adressen.

Kode:

Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Range ("A2: A12"). Finn (What: = "Bangalore") Rng.Find What: = "Bangalore" CellAddress = Rng.Address End Sub Sub
Merk: RNG. Adresse fordi RNG vil ha referansen for funnet verdicelle.

Trinn 8 - Vis nå det tildelte resultatet av celleadressevariabelen i meldingsboksen i 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 () 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 Streng FirstCell = FindRng.Address Do MsgBox FindRng.Address Set FindRng = Rng.FindNext (FindRng) Loop While FirstCell FindRng.Address MsgBox "Search is over" End Sub

Trinn 21 - Dette vil fortsette å vise alle matchende celleadresser, og til slutt vil det vise meldingen "Søk er over" i den nye meldingsboksen.

Ting å huske

  • FIND-metoden kan bare finne en verdi om gangen.
  • FINN NESTE i excel VBA kan finne neste verdi fra den allerede funnet verdicellen.
  • Bruk Gjør mens-sløyfen til å gå gjennom alle cellene i området.

Interessante artikler...