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