VBA Намери стойност в колона

Тази статия ще покаже как да използвате VBA за намиране на стойност в колона.

Можем да използваме Range.Find, за да преминем през колона със стойности във VBA, за да намерим всички клетки в диапазона, които отговарят на посочените критерии.

Преминаване през колона с Range.Find и Range.FindNext

В примера по -долу преглеждаме данните в колоната и търсим думата „Просрочени“. Когато намери думата, тя ще маркира клетката, като промени цвета на текста на клетката в червено. След това ще използваме метода Range.FindNext, за да преминем към следващата клетка и да продължим да търсим думата, продължавайки цикъла до края на определения диапазон от клетки.

1234567891011121314151617 Sub FindLoop ()Dim strFirstAddress As StringЗатъмнете rngFindValue като диапазонDim rngSearch As RangeDim rng Намерете като диапазонЗадайте rngFind = ActiveSheet.Range ("F1: F17")Задайте rngSearch = rngFind.Cells (rngFind.Cells.Count)Задайте rngFindValue = rngFind.Find ("Просрочено", rngSearch, xlValues)Ако не е, тогава rngFindValue не е нищоstrFirstAddress = rngFindValue.AddressrngFindValue.Font.Color = vbRedНаправетеЗадайте rngFindValue = rngFind.FindNext (rngFindValue)rngFindValue.Font.Color = vbRedЦикъл до rngFindValue.Address = strFirstAddressКрай АкоEnd Sub

Когато кодът се изпълнява, той записва адреса на първата клетка, където се намират данните в променливата strFirstAddress и променя цвета на текста в червен. След това се създава цикъл за намиране на следващата клетка, която съдържа необходимите данни. Когато се намери стойността, цветът на текста се променя на червен и след това адресът на клетката, където се намира стойността, се сравнява с низ strFirstAddress. Ако те не са еднакви, цикълът продължава, като намира всеки екземпляр на думата „Просрочен“. След като цикълът достигне края на диапазона от клетки (т.е. F17), той ще започне обратно в началото на диапазона (F1) и ще продължи да се върти. След като достигне адреса на клетката F3 за втори път, тъй като е същият като съхранената променлива strFirstAddress, цикълът ще спре.

wave wave wave wave wave