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