Vlookup на основе ввода в ячейку для предупреждения пользователя в зависимости от результатов vlookup

Я пытаюсь сделать проверку VBA каждый раз, когда новый идентификатор сотрудника вводится в лист (автоматически ищет их информацию из базы данных), что, если введенный идентификатор возвращает человека, который считается ассоциированным, окно сообщения будет генерировать информацию Пользователь, которого они собираются выбрать ассоциированного. В настоящее время я получаю ошибку времени выполнения 424 в строке If Application. Я очень новичок в VBA, поэтому, если я делаю глупую ошибку, извините. Любая помощь с благодарностью.

Отредактированный код - спасибо Дугу и Симоко за помощь.

Sub Worksheet_Change(ByVal Target As Range)
Dim WatchRange As Range
Dim IntersectRange As Range
Set WatchRange = Range("A2:A550")
Set IntersectRange = Intersect(Target, WatchRange)
If IntersectRange Is Nothing Then
    'Do Nothing Spectacular
Else

On Error Resume Next
 If WorksheetFunction.VLookup(IntersectRange, Me.Range("A2:M550"), 14, False) = "Associate" Then

 MsgBox "You have choosen an associate for this trip!"
 Else


End If
End If
End Sub

1 ответ

Решение

Попробуйте этот код:

Sub Worksheet_Change(ByVal Target As Range)
    Dim res As Variant
    If Not Intersect(Target, Range("A2:A550")) Is Nothing Then
        res = Application.CountIfs(Range("A2:A550"), Target, _
                Range("M2:M550"), "Associate")
        If Not IsError(res) Then
            If res > 0 Then MsgBox "You have choosen an associate for this trip!"
        End If
    End If
End Sub
Другие вопросы по тегам