Мне просто нужно отслеживать изменения на листе, а не на всем листе, только внутри именованного диапазона. Поэтому, если в какой-либо ячейке происходит какое-либо изменение, он должен проверить, что изменение происходит в этом именованном диапазоне, и если это так, должна выполняться какая-то функция.
Вот мой код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ir As Boolean
ir = Application.Intersect(Target.Address, Range("bd_main"))
If ir = True Then
MsgBox "change"
End If
End Sub
Но это вызывает ошибку, говорящую о Type Mismatch
в функции Application.Intersect
для Target.Address
.
Что я сделал не так, что вызывает такую ошибку.
С небольшими изменениями используйте приведенный ниже код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("bd_main")) Is Nothing Then
MsgBox "change"
End If
End Sub
@SandeepThomas да, он возвращает объект Range
Спасибо, приятель ... отлично сработало ... У меня было неправильное мнение, что Application.Intersect возвращает тип bool. Но сам его диапазон ... не так ли?