Как можно проверить, лежит ли Target.Address в заданных диапазонах? Например для таких: "А1:А4" и "А6:А9".
Макрос
Sub макрос()
Dim Target As Range
Dim addresses(1 To 2) As Range
Dim i As Long
'1. Записываем в переменную "Taget" какую-нибудь ячейку, чтобы протестировать макрос.
Set Target = Range("A5")
'2. Запись диапазонов в массив "addresses".
Set addresses(1) = Range("A1:A4")
Set addresses(2) = Range("A6:A9")
'3. Проверка, входит ли Target в какой-либо заданный диапазон.
For i = 1 To UBound(addresses)
If Not Intersect(Target, addresses(i)) Is Nothing Then
Exit For
End If
Next i
' Если не было преждевременного выхода из цикла, значит Target не входит ни в один диапазон.
If i > UBound(addresses) Then
MsgBox "Не входит в диапазоны.", vbExclamation
Exit Sub
End If
'4. Если макрос оказался здесь, значит Target входит в какой-то диапазон.
End Sub
Или вот так можно одной строкой:
If Intersect(Target, Range("A1:A4,A6:A9")) Is Nothing Then Exit Sub
Спасибо, помогло!