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

Satura rādītājs

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, noklikšķiniet uz atrast blakus, 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?

Kā teikts vārds, “Atrast nākamo” nozīmē, ka 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

Zemāk ir piemēri nākamās metodes atrašanai programmā Excel VBA.

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

1. solis - šajos datos mums jāatrod pilsētas nosaukums “Bangalore”. Sāksim apakšprocedūru vizuālajā 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ā, tikai 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 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 parādiet adresi ziņojuma lodziņā.

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

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 Vai MsgBox FindRng.Address Komplekts 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 visas atbilstošās šūnu adreses, 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.

Interesanti raksti...