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.
Параметърът за функцията за търсене е диапазонът от клетки, като в кой диапазон искаме да намерим стойност. Това може да бъде няколко колони или няколко клетки или цял работен лист.
Примери
Пример # 1
Да предположим, че нашите данни имат следните стойности

Ще се опитаме да намерим „Аран“ в същите данни.
- За да напишете VBA код, е необходимо да сте активирали раздела за разработчици в Excel, за да можете да пишете VBA кодове.

- Започваме да пишем нашия код, като пишем следния код, както е показано по-долу,
Подпроба () DimFindS As String
Dim
Rng As Range FindS = InputBox („Въведете стойността, която искате да търсите“)
С Sheets („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 в този пример,

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

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

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