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

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

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

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

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

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

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

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

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

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

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

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

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

Овај ВБА Финд Нект Екцел Темплате можете преузети овде - ВБА Финд Нект Екцел Темплате

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

Шифра:

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

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

Шифра:

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

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

Шифра:

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

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

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

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

Шифра:

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

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

Шифра:

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

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

Шифра:

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

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

Шифра:

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

Белешка: РНГ.Адресс, јер ће РНГ имати референцу за ћелију пронађене вредности.

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

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

Корак # 9 - Покрените код и погледајте шта ћемо овде добити.

Дакле, пронашли смо вредност „Бангалоре“ у ћелији А5. Помоћу методе Пронађи можемо пронаћи само једну ћелију, тако да уместо ФИНД морамо користити ФИНД НЕКСТ у екцелу ВБА.

Корак # 10 - Морамо да референцирамо променљиву објекта ранге, али користећи методу ФИНД НЕКСТ у екцелу ВБА.

Шифра:

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

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

Корак # 11 - Сада поново доделите адресу ћелије и прикажите адресу у оквиру за поруку.

Шифра:

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

Корак # 12 - Покрените макро и погледајте шта ћемо добити у првом оквиру за поруке.

Корак # 13 - Прво поље за поруку приказује вредност „Бангалоре“ која се налази у ћелији А5, кликните на дугме Ок да бисте видели следећу пронађену вредност.

Друга вредност пронађена у ћелији А7, притисните Ок да бисте наставили.

ВБА Финд Нект (помоћу петље)

Изаћи ће из подпроцедуре ВБА, али ми смо још један у ћелији А10. Када се вредности налазе у више ћелија, онда је боља идеја користити петље.

И у овом случају имамо вредност „Бангалоре“ у више од једне ћелије, па овде морамо да укључимо петље.

Корак # 14 - Прво прогласите две променљиве као опсег.

Шифра:

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

Корак # 15 - Поставите референцу за прву променљиву као што је приказано доле.

Шифра:

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

Корак # 16 - За другу променљиву поставите референцу помоћу функције ФИНД ВБА.

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

Корак # 17 - Пре него што почнемо да тражимо вредност, морамо да идентификујемо из које ћелије започињемо претрагу, јер то декларише променљиву као низ.

Шифра:

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

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

Шифра:

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

Корак # 19 - Сада морамо да укључимо петљу „Уради док“ да би се прошли кроз све ћелије и пронашли вредност за претрагу.

Шифра:

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

Унутар петље спомените оквир за поруке и ВБА ФИНД НЕКСТ метод.

Корак # 20 - Испод је комплетан код за вас.

Шифра:

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

Корак # 21 - Тако ће се и даље приказивати све одговарајуће адресе ћелије, а на крају ће се у новом пољу за поруке приказати порука „Претраживање је готово“.

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

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