VBA Знайти значення у стовпці

У цій статті буде показано, як за допомогою VBA знайти значення у стовпці.

Ми можемо використовувати Range.Find, щоб прокрутити стовпець значень у VBA, щоб знайти всі комірки в діапазоні, які відповідають зазначеним критеріям.

Цикл через стовпець з Range.Find і Range.FindNext

У наведеному нижче прикладі ми перебираємо дані у стовпці і шукаємо слово «прострочено». Коли він знайде слово, він позначить клітинку, змінивши колір тексту комірки на червоний. Потім буде використано метод Range.FindNext для переходу до наступної комірки та продовження пошуку слова, продовжуючи цикл до кінця зазначеного діапазону клітинок.

1234567891011121314151617 Sub FindLoop ()Затемнити strFirstAddress як рядокПриглушити rngFindValue як діапазонDim rngSearch As RangeПриглушити 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