Это то, что вы пытаетесь?
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
If Not Intersect(Target, Range("rel_type")) Is Nothing Then
Application.EnableEvents = False
'--some code
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
Followup
Да, это именно то, что мне было нужно! Спасибо! Оно работало завораживающе. Я не был знаком с Intersect или опцией EnableEvents, поэтому я многому научился здесь - я ценю это. - rryanp 16 секунд назад
INTERSECT : Метод пересечения вернет объект Range, представляющий пересечение двух или более диапазонов.
см. Ссылку
Тема: Метод пересечения [Справочник по языку VBA в Excel 2003]
Ссылка : Пересечение - MSDN
ENABLEEVENTS : необходимо использовать свойство EnableEvents, чтобы предотвратить возможные бесконечные циклы, которые может инициировать код VBA. Если для этого свойства установлено значение False
, VBA не будет вызывать никаких событий, а событие Worksheet_Change
будет запускаться только один раз. Кроме того, вы всегда должны обязательно устанавливать для свойства EnableEvents значение True
, чтобы в следующий раз нормально вызывать события.
НТН
Sid