VBA LEIA JÄRGMINE - Kuidas kasutada funktsiooni FindNext Exceli VBA-s?

Lang L: none (table-of-contents)

Exceli VBA Leia järgmine

Nagu Excelis, kui vajutame klahvikombinatsiooni CTRL + F, ilmub üles viisardikast, mis võimaldab meil antud töölehelt väärtust otsida ja kui väärtus on leitud, klõpsame teise sarnase väärtuse leidmiseks kõrval asuvat nuppu, kuna see on töölehe funktsioon saab seda VBA-s kasutada ka rakenduse atribuudimeetodina kui application.findnext samadel eesmärkidel.

Konkreetse väärtuse leidmine mainitud vahemikus on hea, kuid mis siis, kui nõutakse mitme kordusega väärtuse leidmist. Ühes varasemas artiklis oleme käsitlenud VBA-s leidmise meetodit ja see pole üldse keeruline, kuid kõigi korduvate esinemiste leidmine on võimalik ainult Exceli VBA-s oleva meetodi „Järgmine leidmine” abil.

Selles artiklis me näitame teile, kuidas seda Exceli VBA-s leidmist "Järgmine leida" kasutada.

Mis on Exceli VBA-s järgmise leidmine?

Nagu sõna ütleb, tähendab „Leia järgmine” leitud lahtrist jätkates järgmise väärtuse otsimist, kuni naaseb tagasi algsesse lahtrisse, kus oleme otsingu alustanud.

See on meetodi „Leia” täpsem versioon, mis otsib mainitud vahemikus mainitud väärtust ainult ühel korral.

Allpool on meetodi LEIA JÄRGMINE süntaks Exceli VBA-s.

Pärast: see on sõna, mida me otsime.

Näited Exceli VBA järgmise meetodi leidmisest

Allpool on näited järgmise meetodi leidmiseks Exceli VBA-s.

Näiteks vaadake allolevaid andmeid.

1. samm - nendest andmetest peame leidma linna nime “Bangalore”. Alustame alamprotseduuri visuaalses põhiredaktoris.

Kood:

Alamvahemik Järgmine_näide () Lõpp alam

Samm # 2 - esiteks deklareerige muutuja objektiks „Range”.

Kood:

Sub RangeNext_Example () Dim Rng kui Range End Sub

Samm # 3 - määrake objektimuutujale viide väärtuseks „Vahemik („ A2: A11 ”).

Kood:

Sub RangeNext_Example () Dim Rng As Range Set Rng = Range ("A2: A12") Lõpp alam

Kuna meie linnaloendi andmed on selles vahemikus lahtrite vahemikus A2 kuni A11, otsime ainult linna Bangalore.

Kuna me määrasime vahemiku viite muutujale “Rng”, kasutame seda muutujat selle asemel, et iga kord kasutada RANGE (“A2: A11”).

Samm # 4 - kasutage muutujat RNG ja avage meetod Find.

Kood:

Sub RangeNext_Example () Dim Rng Range Range Set Rng = Range ("A2: A12") Rng.Lõpeta alam

Samm # 5 - meetodi FIND esimene argument on „Mida”, st mida me proovime mainitud vahemikus otsida, seega on otsitav väärtus „Bangalore”.

Kood:

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

Samm # 6 - selle väärtuse kuvamiseks deklareerige stringina veel üks muutuja.

Kood:

Sub RangeNext_Example () Dim Rng Range Range Dim CellAdderess as String Set Rng = Vahemik ("A2: A12") Rng.Leia: = "Bangalore" End Sub

Samm # 7 - määrake selle muutuja jaoks leitud lahtriaadress.

Kood:

Sub RangeNext_Example () Dim Rng Range Range Dim CellAdderess as String Set Rng = Range ("A2: A12"). Leidke (What: = "Bangalore") Rng.Find What: = "Bangalore" CellAddress = Rng.Address End Sub
Märkus: RNG. Aadress, kuna RNG-l on leitud väärtuse lahtrile viide.

Samm # 8 - nüüd kuvage määratud lahtriaadressi muutuja tulemus VBA teatekastis.

Sub RangeNext_Example () Dim Rng Range Range Dim CellAdderess as String Set Rng = Range ("A2: A12"). Leidke (What: = "Bangalore") Rng.Find What: = "Bangalore" CellAddress = Rng.adress MsgBox CellAddress End Alam

Samm # 9 - käivitage kood ja vaadake, mida me siin saame.

Seega oleme lahtrist A5 leidnud väärtuse “Bangalore”. Leida-meetodi abil leiame ainult ühe lahtri, seega peame FIND-i asemel Exceli VBA-s kasutama FIND NEXT.

Samm # 10 - peame viitama vahemikuobjekti muutujale, kuid kasutades Exceli VBA-s LEIA JÄRGMIST meetodit.

Kood:

Sub RangeNext_Example () Dim Rng Range Range Dim CellAdderess as String Set Rng = Vahemik ("A2: A12"). Leidke (Mis: = "Bangalore") Rng.Find Mida: = "Bangalore" CellAddress = Rng.Aadress MsgBox CellAddress Set Rng = Vahemik ("A2: A12"). FindNext (Rng) End Sub

Nagu ülal näete, oleme kasutanud meetodit VBA FIND NEXT, funktsiooni sees aga vahemikuobjekti muutuja nime.

Samm # 11 - määrake nüüd uuesti raku aadress ja kuvage aadress sõnumikastis.

Kood:

Sub RangeNext_Example () Dim Rng Range Range Dim CellAdderess as String Set Rng = Vahemik ("A2: A12"). Leidke (Mis: = "Bangalore") Rng.Find Mida: = "Bangalore" CellAddress = Rng.Aadress MsgBox CellAddress Set Rng = Vahemik ("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) Loop FirstCell FindRng.Address MsgBox "Otsing on läbi" Lõpp alam

Samm # 21 - see näitab jätkuvalt kõiki vastavaid lahtriaadresse ja lõpuks näitab see uues sõnumikastis sõnumit "Otsing on lõppenud".

Asjad, mida meeles pidada

  • FIND-meetodiga saab korraga leida ainult ühe väärtuse.
  • LEIA JÄRGMINE Exceli VBA-s võib järgmise väärtuse leida juba leitud väärtuse lahtrist.
  • Kõigi vahemiku lahtrite sirvimiseks kasutage silmust Do While.

Huvitavad Artiklid...