ВБА ПРОНАЂИ СЛЕДЕЋУ | Како се користи функција ФиндНект у програму Екцел ВБА?
Екцел ВБА Финд Нект
Као у Екцелу када притиснемо ЦТРЛ + Ф, појављује се оквир чаробњака који нам омогућава да претражимо вредност на датом радном листу и када се вредност пронађе кликнемо на финд поред да бисмо пронашли другу сличну вредност, јер је то функција радног листа такође може да га користи у ВБА као методу својства апликације као апплицатион.финднект за исте сврхе.
Проналажење одређене вредности у поменутом опсегу је у реду, али шта ако је захтев да се вредност пронађе у више појављивања. У једном од ранијих чланака разговарали смо о методи „Пронађи“ у ВБА и она уопште није сложена, али проналажење свих понављајућих појава могуће је само помоћу методе „Пронађи следеће“ у екцелу ВБА.
У овом чланку ћемо вам показати како да користите ову „Пронађи следећу“ у програму Екцел ВБА.
Шта је Финд Нект у програму Екцел ВБА?
Као што реч каже „Пронађи следеће“, значи из пронађене ћелије наставите да тражите следећу вредност док се не врати натраг у првобитну ћелију где смо започели претрагу.
Ово је напредна верзија методе „Пронађи“ која претражује само једном поменуту вредност у поменутом опсегу.
Испод је синтакса методе ФИНД НЕКСТ у програму Екцел ВБА.
После: То је реч коју тражимо.
Примери методе Пронађи следећу у програму Екцел ВБА
Испод су примери за проналажење следеће методе у екцелу ВБА.
На пример, погледајте податке у наставку.
Овај ВБА Финд Нект Екцел Темплате можете преузети овде - ВБА Финд Нект Екцел ТемплатеКорак 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 - Тако ће се и даље приказивати све одговарајуће адресе ћелије, а на крају ће се у новом пољу за поруке приказати порука „Претраживање је готово“.
Ствари које треба запамтити
- Метода ФИНД може истовремено пронаћи само једну вредност.
- ФИНД НЕКСТ у екцелу ВБА може пронаћи следећу вредност из већ пронађене ћелије вредности.
- Користите петљу До Вхиле за петљу кроз све ћелије у опсегу.