VBA RASTI TOLIAU | Kaip naudoti „FindNext“ funkciją „Excel VBA“?

„Excel VBA“ Raskite toliau

Kaip ir „Excel“, kai paspaudžiame CTRL + F, pasirodo vedlio langelis, kuris leidžia mums ieškoti vertės pateiktame darbalapyje, o radę vertę, mes spustelėjame šalia, kad rastume kitą panašią vertę, nes tai yra darbalapio funkcija taip pat gali naudoti VBA kaip „Application“ nuosavybės metodą kaip „application.findnext“ tiems patiems tikslams.

Konkrečios vertės nustatymas minėtame diapazone yra puikus, bet ką daryti, jei reikalaujama rasti vertę su keliais atvejais. Viename iš ankstesnių straipsnių aptarėme „Rasti“ metodą VBA ir jis visiškai nesudėtingas, tačiau surasti visus pasikartojančius įvykius įmanoma tik naudojant „Excel Next VBA“ metodą „Rasti kitą“.

Šiame straipsnyje mes parodysime, kaip naudoti šį „Find Next“ „Excel VBA“.

Kas yra „Find Next“ „Excel VBA“?

Žodis sako „Rasti kitą“ reiškia, kad iš rastos langelio toliau ieškokite kitos vertės, kol grįš į pradinę langelį, kuriame pradėjome paiešką.

Tai yra išplėstinė metodo „Rasti“ versija, ieškanti tik vieną kartą paminėtos vertės minėtame diapazone.

Žemiau yra „Excel VBA“ metodo RASTI KITĄ sintaksė.

Po: Tai yra žodis, kurio mes ieškome.

„Excel VBA“ kito metodo radimo pavyzdžiai

Toliau pateikiami „Excel VBA“ kito metodo radimo pavyzdžiai.

Pavyzdžiui, pažiūrėkite į toliau pateiktus duomenis.

Šį „VBA Find Next Excel“ šabloną galite atsisiųsti čia - VBA „Find Next Excel“ šabloną

1 žingsnis - šiuose duomenyse turime rasti miesto pavadinimą „Bangalore“. Pradėkime antrinę procedūrą „Visual Basic“ redaktoriuje.

Kodas:

 Sub RangeNext_Example () Pabaigos sub 

2 žingsnis. Pirmiausia paskelbkite kintamąjį kaip „Range“ objektą.

Kodas:

 Sub RangeNext_Example () Dim Rng As Range End Sub 

3 žingsnis - nustatykite objekto kintamojo nuorodą kaip „Range“ („A2: A11“).

Kodas:

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

Kadangi mūsų miesto sąrašo duomenys yra langelių diapazone nuo A2 iki A11, tik mes ieškosime miesto „Bangalore“.

Kadangi mes nustatėme diapazono nuorodą į kintamąjį „Rng“, mes naudojame šį kintamąjį, užuot naudoję RANGE („A2: A11“) kiekvieną kartą.

4 žingsnis - naudokite kintamąjį RNG ir atidarykite „Find“ metodą.

Kodas:

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

5 žingsnis - Pirmasis FIND metodo argumentas yra „Ką“, ty tai, ko mes bandome ieškoti minėtame diapazone, taigi mūsų ieškoma vertė yra „Bangalore“.

Kodas:

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

6 žingsnis - norėdami parodyti, kurioje ląstelėje radome šią vertę, deklaruokite dar vieną kintamąjį kaip eilutę.

Kodas:

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

7 žingsnis - Šiam kintamajam priskirkite rastą langelio adresą.

Kodas:

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

Pastaba: RNG.adresas, nes RNG turės rastos vertės langelio nuorodą.

8 žingsnis - Dabar VBA pranešimų laukelyje parodykite priskirtą langelio adreso kintamojo rezultatą.

 Sub RangeNext_Example () Dim Rng As Range Dim CellAdderess as String Set Rng = Range ("A2: A12"). Raskite (kas: = "Bangalore") Rng.Find What: = "Bangalore" CellAddress = Rng.adresas MsgBox CellAddress End Sub 

9 žingsnis - paleiskite kodą ir sužinokite, ką mes čia gauname.

Taigi langelyje A5 radome vertę „Bangalore“. Taikydami „Find“ metodą, galime rasti tik vieną langelį, todėl vietoje „FIND“ turime naudoti „FIND NEXT“ „Excel VBA“.

10 žingsnis - Turime nurodyti diapazono objekto kintamąjį, bet naudodami RASTI KITĄ metodą „Excel VBA“.

Kodas:

 Sub RangeNext_Example () „Dim Rng“ kaip diapazonas „Dim CellAdderess“ kaip eilutės rinkinys Rng = Diapazonas ("A2: A12"). „FindNext“ (Rng) Pabaigos sub 

Kaip matote aukščiau, mes naudojome VBA FIND NEXT metodą, tačiau funkcijos viduje naudojome diapazono objekto kintamojo pavadinimą.

11 žingsnis - Dabar vėl priskirkite langelio adresą ir parodykite adresą pranešimo laukelyje.

Kodas:

 Sub RangeNext_Example () „Dim Rng“ kaip diapazonas „Dim CellAdderess“ kaip eilutės rinkinys Rng = Diapazonas ("A2: A12"). „FindNext“ (Rng) „CellAddress“ = Rng.Adresas „MsgBox CellAddress“ pabaigos pabaiga 

12 žingsnis - paleiskite makrokomandą ir pamatykite, ką gauname pirmame pranešimo laukelyje.

13 žingsnis - Pirmajame pranešimo laukelyje rodoma reikšmė „Bangalore“, randama langelyje A5, spustelėkite mygtuką Gerai, kad pamatytumėte kitą rastą vertę.

Antrą reikšmę, esančią A7 langelyje, paspauskite Gerai, jei norite tęsti.

VBA Rasti kitą (naudojant kilpą)

Tai išeitų iš VBA subprocedūros, bet mes esame dar vienas, kurį galime rasti A10 langelyje. Kai vertes reikia rasti daugiau nei vienoje langelyje, geriau naudoti kilpas.

Šiuo atveju mes taip pat turime vertę „Bangalore“ daugiau nei vienoje langelyje, todėl čia turime įtraukti kilpas.

14 žingsnis. Pirmiausia nurodykite du kintamuosius kaip diapazoną.

Kodas:

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

15 žingsnis - nustatykite pirmojo kintamojo nuorodą, kaip parodyta žemiau.

Kodas:

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazonas ("A2: A11"). Raskite (Kas: = "Bangalore") Pabaiga Sub 

16 žingsnis - Antram kintamajam nustatykite nuorodą naudodamiesi funkcija RASTI VBA.

 Sub RangeNext_Example1 () Dim Rng As Range Dim FindRng As Range Set Rng = Diapazonas ("A2: A11"). Raskite (Kas: = "Bangalore") Nustatykite FindRng = Rng.FindNext ("Bangalore") Pabaiga Sub 

17 žingsnis - Prieš pradėdami ieškoti vertės, turime nustatyti, iš kurios ląstelės pradedame paiešką, kuri skelbia kintamąjį kaip eilutę.

Kodas:

 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. Adreso pabaigos sub 

18 žingsnis - Šiam kintamajam priskirkite pirmąjį langelio adresą.

Kodas:

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

19 žingsnis - Dabar mes turime įtraukti „Do Nors“ kilpą, kad galėtume apžvelgti visas ląsteles ir rasti paieškos vertę.

Kodas:

 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. Adresas „Loop“, kol „FirstCell Cell“. Adresas Pabaigos sub 

Ciklo viduje paminėkite pranešimų laukelį ir VBA RASTI KITĄ metodą.

20 žingsnis - žemiau yra visas jūsų kodas.

Kodas:

 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) ciklas, kol „FirstCell“ FindRng.Address MsgBox „Paieška baigėsi“ Pabaiga 

21 žingsnis - tai ir toliau rodys visą atitinkantį langelio adresą, o galų gale, jis pranešime parodys pranešimą kaip „Paieška baigėsi“.

Ką reikia atsiminti

  • FIND metodas vienu metu gali rasti tik vieną vertę.
  • „Excel VBA“ RASTI KITĄ gali rasti kitą vertę iš jau rastos vertės langelio.
  • Naudokite „Do while“ kilpą, kad galėtumėte peržvelgti visas diapazono ląsteles.

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