Vba: как найти значение в столбце (с примером)


Вы можете использовать следующий базовый синтаксис в VBA, чтобы найти значение в столбце Excel:

 Sub FindValue()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Этот конкретный макрос будет искать строку «Ракеты» во всем столбце A текущего активного листа и, если она будет найдена, изменит цвет шрифта ячейки на красный и сделает шрифт жирным.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: как найти значение в столбце с помощью VBA

Предположим, у нас есть следующий набор данных, содержащий информацию о различных баскетболистах:

Допустим, мы хотим найти название команды «Рокетс» в столбце А и, как только оно будет найдено, преобразовать цвет шрифта ячейки в красный и сделать шрифт жирным.

Для этого мы можем создать следующий макрос:

 Sub FindValues()

Dim rng As Range
Dim cell As Range
Dim findString As String

'specify range to look in
Set rng = ActiveSheet.Columns(" A:A ")

'specify string to look for
findString = " Rockets "

'find cell with string
Set cell = rng.Find(What:=findString, LookIn:=xlFormulas, _
                    LookAt:=xlWhole, MatchCase:=False)

If cell Is Nothing Then
    cell.Font.Color = vbBlack
Else
    cell.Font.Color = vbRed
    cell.Font.Bold = True
End If

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что шрифт в ячейке, содержащей строку «Ракеты», теперь стал красным и полужирным.

Все остальные ячейки просто сохранили свой черный шрифт.

Обратите внимание, что аргумент MatchCase:=False в коде указывает VBA выполнить поиск без учета регистра.

Таким образом, если название команды в столбце A было «ракеты», макрос всегда найдет эту строку и сделает шрифт красным и жирным.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: Как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИФС
VBA: как писать функции СУММЕСЛИ и СУММЕСЛИ
VBA: как писать функции COUNTIF и COUNTIFS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *