Функция за намиране на VBA | Как да използвам функцията за намиране на VBA? (Примери)

Excel VBA Find

Когато използваме Find в нормален работен лист, натискаме клавишната комбинация CTRL + F и въвеждаме данните, които трябва да намерим и ако не желаната стойност отиваме към следващото съвпадение, ако има много такива съвпадения, това е досадна задача, но когато ние използваме FIND във VBA, той изпълнява задачите вместо нас и ни дава точното съвпадение и отнема три аргумента, единият е какво да намерим, къде да намерим и къде да погледнем.

Преди да преминем към VBA и да започнем да използваме функцията за търсене в макроси, първо трябва да научим какво е функцията за търсене в Excel. В нормален Excel в раздела Начало под групата за редактиране можем да намерим функция за намиране, която се използва за намиране на низ или стойност в диапазон от клетки или цял работен лист.

Когато кликнем върху това, получаваме две възможности;

Единият е лесен за намиране,

Виждаме, че има и режим на опции, който отваря друга функция.

Той прави алгоритъма за търсене с четири ограничения: Намери какво, Вътре, Търси и погледни.

Втората опция в Excel е да се намери и замени, което се използва, когато намерим низ, но какво да заменим с друга стойност

Намерете синтаксис на функцията

По-горе научихме какво е Find in basic excel. Във VBA пишем кодове ръчно, но характеристиките са същите като нормалните Excel. Първо, нека разгледаме синтаксиса.

Expression.Find (What, lookin, ....)

Ако стойността, която търсим, бъде намерена с функцията excel, тя връща клетката, където е стойността и ако стойността не е намерена, тогава обектът на функцията е зададен на нищо.

Изразите в макросите са диапазони, дефинирани като диапазон 1 или диапазон 2. Какво представлява ключова дума за това, което искаме да търсим за конкретна стойност? Lookin е ключова дума за това, което се опитваме да търсим дали е коментар, формула или низ. По подобен начин има и други ограничения във функцията Find, които не са задължителни. Единственото задължително поле е това, което е стойност, която се опитваме да търсим.

По принцип VBA намира, че Excel има един необходим аргумент, който е Каква стойност искаме да търсим. Останалите ограничения не са задължителни и има много ограничения във функцията за търсене. Функцията за намиране е подобна на функцията за намиране в Excel.

Параметърът за функцията за търсене е обхватът на клетките. Като в кой диапазон искаме да намерим стойност. Това може да бъде няколко колони или няколко клетки или цял работен лист.

Примери

Можете да изтеглите този шаблон за функция на VBA FIND в Excel - Шаблон за функция на VBA FIND в Excel

Пример # 1

Да предположим, че нашите данни имат следните стойности

Ще се опитаме да намерим „Аран“ в същите данни.

  • За да напишете VBA код, е необходимо да имате активиран раздел за разработчици в Excel, за да можете да пишете VBA кодове.

  • Започваме да пишем нашия код, като пишем следния код, както е показано по-долу,
Подпроба ()

Дим се намира като низ

Dim Rng As Range

FindS = InputBox („Въведете стойността, която искате да търсите“)

С листове („Sheet1“). Обхват („A: A“)

  • Примерът е името на функцията, дадено на под.
  • Find е низът, който искаме да търси потребителят, който искаме да въведем.
  • Rng е променливата, която взехме за диапазона.
  • Сега искаме от потребителя да въведе стойността, която прилича на екранната снимка по-долу,

  • Сега ще определим нашата функция за търсене в модула.

  • Функцията намира стойността, въведена от потребителя в дадения диапазон.
  • Сега затваряме функцията чрез следните аргументи.

  • Сега, ако първо стартираме нашия код, той ще поиска подкана от потребителя за стойност.

  • След като кодът е завършен, той връща клетката там, където са намерени данните.

Пример # 2

В горния пример имаше четири уникални имена, но какво, ако в данните имаше повече от едно име, като разгледаме данните по-долу,

Виждаме, че името Аран се повтаря два пъти в горните данни. Ако excel трябва да намери името Aran, ще го намери в клетка A2 и ще спре, но има друга стойност, подобна на тази на A2 в клетка A6. Как да извлека тази стойност? Тук идва синтаксисът на Find (What, After) в помощ.

След определя клетката, след която препратка искаме да търсим данните.

Нека напишем кода за горните данни.

  • Винаги не забравяйте да активирате раздела за програмисти от опции и след това от персонализиране на лентата в Excel, за да можете да пишете кода във VBA.
  • Във VBA получаваме обекти на Microsoft Excel, което е модул, в който пишем кодовете.

  • Преди работихме върху лист 1, сега работим върху лист 2, така че изберете лист 2 за друг модул и се появява празна страница.

  • Сега започнете да пишете кода, като дефинирате функцията първо като SUB Sample2 () и натиснете enter.

  • Сега дефинирахме нашата функция, ще започнем да навлизаме в основната част, която определя нашите променливи.

  • Определете какво трябва да има променливата Find,

  • Изберете листовете, върху които работим, които са лист 2 в този пример,

  • Сега ще намерим текста каквото и да въведе потребителят след клетка A2, така че дефинираме нашата функция за намиране, както по-долу,

  • Сега затваряме кода, като завършваме с условията if и if.

Това, което прави горният код, е да търси низа след клетката A2 и да връща клетката навсякъде, където е намерена.

Неща за запомняне

  1. Първо, първо трябва да активираме раздела за програмисти, за да използваме VBA.
  2. Каква е конкретната стойност, която трябва да намерим?
  3. Ако стойността не бъде намерена, обектът на функцията не е зададен на нищо.