VBA FIND NEXT | Paano Gumamit ng FindNext Function sa Excel VBA?

Hanapin ang Susunod sa Excel VBA

Tulad ng excel kapag pinindot namin ang CTRL + F isang kahon ng wizard ang mag-pop up na nagbibigay-daan sa amin upang maghanap ng isang halaga sa ibinigay na worksheet at kapag nahanap ang halaga ay nag-click kami sa susunod na hanapin upang makahanap ng iba pang katulad na halaga, dahil ito ay isang tampok na worksheet na Maaari mo ring gamitin ito sa VBA bilang pamamaraan ng pag-aari ng Application bilang application.findnext para sa parehong layunin.

Ang paghahanap ng tukoy na halaga sa nabanggit na saklaw ay pagmultahin ngunit paano kung ang kinakailangan ay upang mahanap ang halaga na may maraming mga pangyayari. Sa isa sa mga naunang artikulo, tinalakay namin ang pamamaraang "Hanapin" sa VBA at hindi ito kumplikado ngunit ang paghahanap ng lahat ng paulit-ulit na pangyayari ay posible lamang sa pamamaraang "Hanapin ang Susunod" sa excel VBA.

Sa artikulong ito, ipapakita namin sa iyo kung paano gamitin ang "Hanapin Susunod" sa Excel VBA.

Ano ang Find Next sa Excel VBA?

Tulad ng salitang sinasabi na "Maghanap Susunod" ay nangangahulugang mula sa nahanap na cell na patuloy na maghanap para sa susunod na halaga hanggang sa bumalik sa orihinal na cell kung saan sinimulan namin ang paghahanap.

Ito ang advanced na bersyon ng pamamaraang "Hanapin" na naghahanap ng isang beses lamang sa nabanggit na halaga sa nabanggit na saklaw.

Nasa ibaba ang syntax ng FIND NEXT na pamamaraan sa Excel VBA.

Pagkatapos: Ito ang salitang hinahanap natin.

Mga halimbawa ng Maghanap ng Susunod na Paraan sa Excel VBA

Nasa ibaba ang mga Halimbawa ng hanapin ang susunod na pamamaraan sa excel VBA.

Halimbawa, tingnan ang data sa ibaba.

Maaari mong i-download ang VBA na Hanapin ang Susunod na Template ng Excel dito - VBA Hanapin ang Susunod na Template ng Excel

Hakbang # 1 - Sa data na ito, kailangan nating hanapin ang pangalang lungsod na "Bangalore". Simulan natin ang subprocedure sa visual basic editor.

Code:

 Sub RangeNext_Example () End Sub 

Hakbang # 2 - Una, ideklara ang variable bilang "Saklaw" na object.

Code:

 Sub RangeNext_Example () Dim Rng As Range End Sub 

Hakbang # 3 - Itakda ang sanggunian para sa variable ng bagay bilang "Saklaw (" A2: A11 ").

Code:

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

Dahil ang aming data ng listahan ng lungsod ay naroon sa saklaw ng mga cell mula A2 hanggang A11 sa saklaw na ito lamang kami maghahanap para sa lungsod na "Bangalore".

Dahil itinakda namin ang saklaw na sanggunian sa variable na "Rng" ginagamit namin ang variable na ito sa halip na gumamit ng RANGE ("A2: A11") sa bawat oras.

Hakbang # 4 - Gamitin ang variable ng RNG at buksan ang paraan ng Paghahanap.

Code:

 Sub RangeNext_Example () Dim Rng Bilang Saklaw na Itakda Rng = Saklaw ("A2: A12") Rng. Hanapin ang End Sub 

Hakbang # 5 - Ang unang argumento ng pamamaraan ng FIND ay "Ano" ibig sabihin, sinusubukan naming maghanap sa nabanggit na saklaw, kaya ang halagang hinahanap namin ay "Bangalore".

Code:

 Sub RangeNext_Example () Dim Rng Bilang Saklaw na Itakda Rng = Saklaw ("A2: A12") Rng. Hanapin Ano: = "Bangalore" End Sub 

Hakbang # 6 - Upang maipakita kung aling cell ay nahanap namin ang halagang ito ideklara ang isa pang variable bilang isang string.

Code:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Saklaw ("A2: A12") Rng. Hanapin Ano: = "Bangalore" End Sub 

Hakbang # 7 - Para sa variable na ito italaga ang nahanap na cell address.

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 End Sub 

Tandaan: RNG.Address dahil ang RNG ay magkakaroon ng sanggunian para sa nahanap na halaga ng cell.

Hakbang # 8 - Ipakita ngayon ang itinalagang resulta ng variable ng cell address sa kahon ng mensahe sa 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 

Hakbang # 9 - Patakbuhin ang code at tingnan kung ano ang makukuha namin dito.

Kaya natagpuan namin ang halagang "Bangalore" sa cell A5. Sa pamamaraang Paghahanap, maaari lamang tayong makahanap ng isang cell kaya sa halip na HANAP kailangan nating gamitin ang HANAP SA SUSUNOD sa excel VBA.

Hakbang # 10 - Kailangan naming sanggunian ang variable na saklaw ng object ngunit sa pamamagitan ng paggamit ng FIND NEXT na pamamaraan sa 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 = Saklaw ("A2: A12"). FindNext (Rng) End Sub 

Tulad ng nakikita mo sa itaas na ginamit namin ang VBA FIND NEXT na pamamaraan ngunit sa loob ng pagpapaandar, gumamit kami ng isang saklaw na pangalan ng variable ng bagay.

Hakbang # 11 - Muling italaga ang cell address at ipakita ang address sa kahon ng mensahe.

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 = Saklaw ("A2: A12"). FindNext (Rng) CellAddress = Rng.Address MsgBox CellAddress End Sub 

Hakbang # 12 - Patakbuhin ang macro at tingnan kung ano ang nakukuha namin sa unang kahon ng mensahe.

Hakbang # 13 - Ipinapakita ng unang kahon ng mensahe ang halagang "Bangalore" na matatagpuan sa cell A5, mag-click sa pindutan ng Ok upang makita ang susunod na nahanap na halaga.

Ang pangalawang halagang nahanap sa A7 cell, pindutin ang Ok upang magpatuloy.

Humanap ang VBA (Paggamit ng Loop)

Lalabas ito sa subprocedure ng VBA ngunit isa pa kami na matatagpuan sa cell A10. Kapag ang mga halaga ay matatagpuan sa higit sa isang cell pagkatapos ito ay isang mas mahusay na ideya na gumamit ng mga loop.

Sa kasong ito, mayroon din kaming halaga na "Bangalore" sa higit sa isang cell, kaya kailangan nating isama ang mga loop dito.

Hakbang # 14 - Una, ideklara ang dalawang variable bilang saklaw.

Code:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range End Sub 

Hakbang # 15 - Itakda ang sanggunian para sa unang variable tulad ng ipinakita sa ibaba.

Code:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11"). Hanapin (Ano: = "Bangalore") End Sub 

Hakbang # 16 - Para sa pangalawang variable itakda ang sanggunian sa pamamagitan ng paggamit ng FIND VBA function.

 Sub RangeNext_Example1 () Dim Rng Bilang Saklaw na Dim FindRng Bilang Saklaw na Itakda Rng = Saklaw ("A2: A11"). Hanapin (Ano: = "Bangalore") Itakda ang FindRng = Rng.FindNext ("Bangalore") End Sub 

Hakbang # 17 - Bago namin simulang maghanap para sa halagang kailangan naming kilalanin mula sa aling cell na sinisimulan namin ang paghahanap, para sa pagdedeklara ng variable bilang isang string.

Code:

 Sub RangeNext_Example1 () Dim Rng Bilang Saklaw na Dim FindRng Bilang Saklaw na Itakda Rng = Saklaw ("A2: A11"). Hanapin (Ano: = "Bangalore") Itakda ang FindRng = Rng.FindNext ("Bangalore") Dim FirstCell Bilang String FirstCell = Rng.Address End Sub 

Hakbang # 18 - Para sa variable na ito italaga ang unang cell address.

Code:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Range ("A2: A11") Itakda ang FindRng = Rng.Find (Ano: = "Bangalore") Dim FirstCell Bilang String FirstCell = Rng. Address End Sub 

Hakbang # 19 - Ngayon kailangan naming isama ang loop na "Gawin Habang" upang mag-loop sa lahat ng mga cell at hanapin ang halaga ng paghahanap.

Code:

 Sub RangeNext_Example1 () Dim Rng Bilang Saklaw na Dim FindRng Bilang Saklaw na Itakda Rng = Saklaw ("A2: A11"). Hanapin (Ano: = "Bangalore") Itakda ang FindRng = Rng.FindNext ("Bangalore") Dim FirstCell Bilang String FirstCell = Rng.Address Do Loop While FirstCell Cell.Address End Sub 

Sa loob ng loop binanggit ang kahon ng mensahe at VBA FIND NEXT na pamamaraan.

Hakbang # 20 - Nasa ibaba ang kumpletong code para sa iyo.

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 Gawin ang MsgBox FindRng.Address Set FindRng = Rng.FindNext (FindRng) Loop Habang FirstCell FindRng.Address MsgBox "Paghahanap ay tapos na" End Sub 

Hakbang # 21 - Patuloy nitong ipapakita ang lahat ng tumutugmang cell address at sa huli, ipapakita nito ang mensahe bilang "Tapos na ang Paghahanap" sa bagong kahon ng mensahe.

Bagay na dapat alalahanin

  • Ang pamamaraan ng PAGHAHANAP ay makakahanap lamang ng isang halaga nang paisa-isa.
  • ALAMIN SA SUSUNOD sa excel VBA ay makakahanap ng susunod na halaga mula sa nahanap na halaga ng cell.
  • Gumamit ng Do While loop upang loop sa lahat ng mga cell sa saklaw.