ВБА ПРОНАЂИ СЛЕДЕЋУ - Како се користи функција ФиндНект у програму Екцел ВБА?

Преглед садржаја

Екцел ВБА Финд Нект

Као у Екцелу када притиснемо ЦТРЛ + Ф, појављује се оквир чаробњака који нам омогућава да претражимо вредност на датом радном листу и када се вредност пронађе кликнемо на финд поред да бисмо пронашли другу сличну вредност, јер је то функција радног листа такође може да га користи у ВБА као методу својства апликације као апплицатион.финднект за исте сврхе.

Проналажење одређене вредности у поменутом опсегу је у реду, али шта ако је захтев да се вредност пронађе у више појављивања. У једном од ранијих чланака расправљали смо о методи „Пронађи“ у ВБА, која уопште није сложена, али проналажење свих понављајућих појава могуће је само помоћу методе „Пронађи даље“ у екцелу ВБА.

У овом чланку ћемо вам показати како да користите ову „Пронађи следећу“ у програму Екцел ВБА.

Шта је Финд Нект у програму Екцел ВБА?

Као што реч каже, „Пронађи следеће“ значи из пронађене ћелије наставите да тражите следећу вредност док се не врати натраг у првобитну ћелију у којој смо започели претрагу.

Ово је напредна верзија методе „Пронађи“, која претражује само једном поменуту вредност у поменутом опсегу.

Испод је синтакса методе ФИНД НЕКСТ у програму Екцел ВБА.

После: То је реч коју тражимо.

Примери методе Пронађи следећу у програму Екцел ВБА

Испод су примери проналажења следеће методе у екцелу ВБА.

На пример, погледајте податке у наставку.

1. корак - У овим подацима морамо да пронађемо име града „Бангалоре“. Покренимо потпроцедуру у основном визуелном уређивачу.

Шифра:

Суб РангеНект_Екампле () Крај Суб

Корак # 2 - Прво прогласите променљиву као објекат „Распон“.

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Енд Суб

Корак # 3 - Поставите референцу за променљиву објекта на „Опсег („ А2: А11 “).

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Сет Рнг = Ранге ("А2: А12") Енд Суб

Будући да су наши подаци са листе градова у опсегу ћелија од А2 до А11 у овом опсегу, само ћемо тражити град „Бангалоре“.

Пошто смо референцу опсега поставили на променљиву „Рнг“, користимо ову променљиву уместо да користимо РАНГЕ („А2: А11“) сваки пут.

Корак # 4 - Користите променљиву РНГ и отворите методу Пронађи.

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Сет Рнг = Ранге ("А2: А12") Рнг.Финд Енд Суб

Корак # 5 - Први аргумент методе ФИНД је „Шта“, тј. Оно што покушавамо да претражимо у поменутом опсегу, па је вредност коју претражујемо „Бангалоре“.

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Сет Рнг = Ранге ("А2: А12") Рнг.Финд Вхат: = "Бангалоре" Енд Суб

Корак # 6 - Да бисмо показали у којој смо ћелији пронашли ову вредност, пријавите још једну променљиву као низ.

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Дим ЦеллАддресс Ас Стринг Сет Рнг = Ранге ("А2: А12") Рнг.Финд Вхат: = "Бангалоре" Енд Суб

Корак # 7 - За ову променљиву доделите пронађену адресу ћелије.

Шифра:

Суб РангеНект_Екампле () Дим Рнг Ас Ранге Дим ЦеллАддресс Ас Стринг Сет Рнг = Ранге ("А2: А12"). Финд (Вхат: = "Бангалоре") Рнг.Финд Вхат: = "Бангалоре" ЦеллАддресс = Рнг.Аддресс Енд Суб
Напомена: РНГ. Адреса јер ће РНГ имати референцу за ћелију пронађене вредности.

Корак # 8 - Прикажите резултат додељене променљиве адресе ћелије у оквиру за поруке у ВБА.

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

Step#9 - Run the code and see what we get here.

So we have found the value “Bangalore” in the cell A5. With the Find method, we can find only one cell, so instead of FIND, we need to use FIND NEXT in excel VBA.

Step#10 - We need to reference the range object variable but by using the FIND NEXT method in 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 = Range("A2:A12").FindNext(Rng) End Sub

As you can see above, we have used the VBA FIND NEXT method, but inside the function, we have used a range object variable name.

Step#11 - Now again, assign the cell address and show the address in the message box.

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 = Range("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:

Суб ФиндНект_Екампле () Дим ФиндВалуе Ас Стринг ФиндВалуе = "Бангалоре" Дим Рнг Ас Ранге Сет Рнг = Ранге ("А2: А11") Дим ФиндРнг Ас Ранге Сет ФиндРнг = Рнг.Финд (Вхат: = ФиндВалуе) Дим ФирстЦелл Ас Стринг ФирстЦелл = ФиндРнг.Аддресс Да ли МсгБок ФиндРнг.Аддресс Сет ФиндРнг = Рнг.ФиндНект (ФиндРнг) Лооп Вхиле ФирстЦелл ФиндРнг.Аддресс МсгБок "Сеарцх ис овер" Енд Суб

Корак # 21 - Ово ће и даље приказивати све одговарајуће адресе ћелија, а на крају ће у новом оквиру за поруке приказати поруку као „Сеарцх ис Овер“.

Ствари које треба запамтити

  • Метода ФИНД може истовремено пронаћи само једну вредност.
  • ФИНД НЕКСТ у екцелу ВБА може пронаћи следећу вредност из већ пронађене ћелије вредности.
  • Користите петљу До Вхиле да бисте прошли кроз све ћелије у опсегу.

Занимљиви Чланци...