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

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

Скажімо, ми хочемо знайти назву команди «Rockets» у стовпці A, а коли її знайдемо, перетворимо колір шрифту комірки на червоний і зробимо шрифт жирним.

Для цього ми можемо створити такий макрос:

 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: як написати функції AVERAGEIF і AVERAGEIFS
VBA: як написати функції SUMIF і SUMIFS
VBA: як написати функції COUNTIF і COUNTIFS

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *