VBA Найти значение в столбце

В этой статье будет продемонстрировано, как использовать VBA для поиска значения в столбце.

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

Цикл по столбцу с помощью Range.Find и Range.FindNext

В приведенном ниже примере мы просматриваем данные в столбце и ищем слово «Просрочено». Когда он найдет слово, он пометит ячейку, изменив цвет текста ячейки на красный. Затем он использует метод Range.FindNext, чтобы перейти к следующей ячейке и продолжить поиск слова, продолжая цикл до конца указанного диапазона ячеек.

1234567891011121314151617 Sub FindLoop ()Dim strFirstAddress как строкаDim rngFindValue As RangeDim rng Search 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Конец, еслиКонец подписки

Когда код запускается, он сохраняет адрес первой ячейки, в которой находятся данные, в переменной. strFirstAddress и меняет цвет текста на красный. Затем создается цикл для поиска следующей ячейки, содержащей требуемые данные. Когда значение найдено, цвет текста меняется на красный, а затем адрес ячейки, в которой найдено значение, сравнивается со строкой. strFirstAddress. Если они не совпадают, цикл продолжается, находя каждое слово «Просрочено». Как только цикл достигнет конца диапазона ячеек (например, F17), он начнется с начала диапазона (F1) и продолжит цикл. Как только он достигнет адреса ячейки F3 во второй раз, так как он совпадает с сохраненной переменной strFirstAddress, цикл остановится.

wave wave wave wave wave