VBA ATRAST NĀKAMO Kā izmantot funkciju FindNext programmā Excel VBA?

Excel VBA Atrast nākamo

Tāpat kā excel, nospiežot CTRL + F, tiek parādīts vedņa lodziņš, kas ļauj mums meklēt vērtību dotajā darblapā, un, kad vērtība ir atrasta, mēs noklikšķiniet uz blakus atrast, lai atrastu citu līdzīgu vērtību, jo tā ir darblapas funkcija, kuru mēs Var izmantot arī VBA kā lietojumprogrammas rekvizītu metodi kā application.findnext tiem pašiem mērķiem.

Konkrētās vērtības atrašana minētajā diapazonā ir piemērota, bet ja prasība ir atrast vērtību ar vairākiem gadījumiem. Vienā no iepriekšējiem rakstiem mēs esam apsprieduši “Atrast” metodi VBA, un tā nemaz nav sarežģīta, taču visu atkārtoto gadījumu atrašana ir iespējama tikai ar “Excel Nākamā” metodi “Atrast nākamo”.

Šajā rakstā mēs parādīsim, kā izmantot šo “Find Next” programmā Excel VBA.

Kas ir Find Next Excel VBA?

Tā kā vārds saka “Atrast nākamo”, no atrastās šūnas turpina meklēt nākamo vērtību, līdz atgriežas sākotnējā šūnā, kur esam sākuši meklēšanu.

Šī ir “Atrast” metodes uzlabotā versija, kas minētajā diapazonā meklē tikai vienu reizi minēto vērtību.

Tālāk ir norādīta metodes FIND NEXT sintakse programmā Excel VBA.

Pēc: Mēs meklējam vārdu.

Piemēri nākamās metodes atrašanai programmā Excel VBA

Tālāk ir norādīti nākamās metodes atrašanas piemēri programmā Excel VBA.

Piemēram, apskatiet tālāk minētos datus.

Šo VBA Find Next Excel veidni varat lejupielādēt šeit - VBA Find Next Excel veidne

1. solis - šajos datos mums jāatrod pilsētas nosaukums “Bangalore”. Sāksim apakšprocedūru vizuālā pamata redaktorā.

Kods:

 Sub RangeNext_Example () Beigas Sub 

2. solis. Pirmkārt, deklarējiet mainīgo kā objektu “Range”.

Kods:

 Sub RangeNext_Example () Dim Rng As Range End Sub 

3. solis - iestatiet objekta mainīgā atsauci kā “Diapazons (“ A2: A11 ”).

Kods:

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

Tā kā mūsu dati par pilsētu sarakstu atrodas šūnu diapazonā no A2 līdz A11 šajā diapazonā, mēs meklēsim pilsētu “Bangalore”.

Tā kā mēs iestatījām diapazona atsauci uz mainīgo “Rng”, mēs katru reizi izmantojam šo mainīgo, nevis RANGE (“A2: A11”).

4. solis - izmantojiet mainīgo RNG un atveriet metodi Atrast.

Kods:

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

5. solis - pirmais FIND metodes arguments ir “Kas”, ti, tas, ko mēs cenšamies meklēt minētajā diapazonā, tāpēc mūsu meklētā vērtība ir “Bangalore”.

Kods:

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

6. solis - lai parādītu, kurā šūnā mēs esam atraduši šo vērtību, paziņojiet par virkni vēl vienu mainīgo.

Kods:

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

7. solis - šim mainīgajam piešķiriet atrasto šūnas adresi.

Kods:

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

Piezīme: RNG . adrese, jo RNG būs atsauce uz atrastās vērtības šūnu.

8. solis - Tagad VBA ziņojumu lodziņā parādiet piešķirto šūnu adreses mainīgā rezultātu.

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Diapazons ("A2: A12"). Atrodiet (Kas: = "Bangalore") Rng.Find Kas: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress End Apakšgrupa 

9. solis - palaidiet kodu un uzziniet, ko mēs šeit saņemam.

Tātad šūnā A5 esam atraduši vērtību “Bangalore”. Izmantojot metodi Atrast, mēs varam atrast tikai vienu šūnu, tāpēc FIND vietā Excel VBA ir jāizmanto FIND NEXT.

10. solis - mums ir jāatsaucas uz diapazona objekta mainīgo, bet, izmantojot Excel VBA metodi FIND NEXT

Kods:

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess As String Set Rng = Diapazons ("A2: A12"). Atrodiet (Kas: = "Bangalore") Rng.Find Kas: = "Bangalore" CellAddress = Rng.Address MsgBox CellAddress Set Rng = Diapazons ("A2: A12"). FindNext (Rng) Beigu apakšdaļa 

Kā redzat iepriekš, mēs izmantojām metodi VBA FIND NEXT, bet funkcijas iekšpusē esam izmantojuši diapazona objekta mainīgā nosaukumu.

11. solis - Tagad atkal piešķiriet šūnas adresi un ziņojuma lodziņā parādiet adresi.

Kods:

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

12. solis - palaidiet makro un skatiet, ko mēs iegūstam pirmajā ziņojuma lodziņā.

13. solis - pirmajā ziņojuma lodziņā tiek parādīta vērtība “Bangalore”, kas atrasta šūnā A5, noklikšķiniet uz pogas Labi, lai redzētu nākamo atrasto vērtību.

Otro vērtību, kas atrasta A7 šūnā, nospiediet Labi, lai turpinātu.

VBA Atrast nākamo (izmantojot cilpu)

Tas izies no VBA apakšprocedūras, bet mēs esam vēl viens, kas atrodams šūnā A10. Ja vērtības ir atrodamas vairāk nekā vienā šūnā, labāk ir izmantot cilpas.

Arī šajā gadījumā mums vērtība “Bangalore” ir vairāk nekā vienā šūnā, tāpēc mums šeit jāiekļauj cilpas.

14. solis. Pirmkārt, paziņojiet divus mainīgos kā diapazonu.

Kods:

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

15. solis - iestatiet atsauci pirmajam mainīgajam, kā parādīts zemāk.

Kods:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazons ("A2: A11"). Atrodiet (What: = "Bangalore") Beigas Sub 

16. solis - otrajam mainīgajam iestatiet atsauci, izmantojot funkciju Atrast VBA.

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazons ("A2: A11"). Atrodiet (Kas: = "Bangalore") Iestatiet FindRng = Rng.FindNext ("Bangalore") Beigas Sub 

17. solis - Pirms mēs sākam meklēt vērtību, mums jāidentificē, no kuras šūnas mēs sākam meklēšanu, kas deklarē mainīgo kā virkni.

Kods:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazons ("A2: A11"). Atrodiet (Kas: = "Bangalore") Iestatiet FindRng = Rng.FindNext ("Bangalore") Dim FirstCell kā String FirstCell = Rng. Adreses beigu apakšnodaļa 

18. solis - šim mainīgajam piešķiriet pirmās šūnas adresi.

Kods:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazons ("A2: A11") Iestatiet FindRng = Rng.Find (Kas: = "Bangalore") Dim FirstCell As String FirstCell = Rng.Address End Sub 

19. solis - Tagad mums jāiekļauj cilne “Do While”, lai apietu visas šūnas un atrastu meklēšanas vērtību.

Kods:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazons ("A2: A11"). Atrodiet (Kas: = "Bangalore") Iestatiet FindRng = Rng.FindNext ("Bangalore") Dim FirstCell kā String FirstCell = Rng. Adrese veiciet cilpu, kamēr šūna FirstCell. Adreses beigu apakšdaļa 

Cilpas iekšpusē pieminējiet ziņojumu lodziņu un VBA FIND NEXT metodi.

20. solis - zemāk ir viss jūsu kods.

Kods:

 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) cilpa, kamēr FirstCell FindRng.Address MsgBox "Meklēšana ir beigusies" Beigu apakšdaļa 

21. solis - tas turpinās rādīt visu atbilstošo šūnu adresi, un galu galā ziņojums jaunajā ziņojumu lodziņā tiks parādīts kā “Meklēšana ir beigusies”.

Atceramās lietas

  • ATRAST metode vienlaikus var atrast tikai vienu vērtību.
  • ATRAST NEXT Excel VBA var atrast nākamo vērtību no jau atrastās vērtības šūnas.
  • Izmantojiet cilni Do Kamēr, lai apietu visas diapazona šūnas.

$config[zx-auto] not found$config[zx-overlay] not found