Пересечение не работает.

Dim NTit As Range Dim NInf As Range Dim NDat As Range

Dim WS As Set Sheets Set WS = ActiveSheet

   Set NTit = WS.Range("$A$1:$J$1")       
   Set NInf = WS.Range("$B$3:$F$3")       
   Set NDat = WS.Range("$A$5:$K$11")       
   NTit.Interior.Color = RGB(255, 0, 0)
   If Not Intersect(Target, NTit, NInf, NDat) Is Nothing Then

1 ответ1

2

Intersect не работает, потому что каждый параметр должен иметь общую ячейку или ячейки. Это не ситуация ИЛИ; это AND. Вы должны по существу использовать Target AND (NTit OR NInf OR NDat) . Это может быть достигнуто путем объединения Intersect с Union .

If Not Intersect(Target, Union(NTit, NInf, NDat)) Is Nothing Then

Похоже, что это может быть из макроса события Worksheet_Change . Если это так, то вам не нужно объявлять и назначать WS . Вы можете просто использовать ME в качестве объекта листа. Я мог бы предложить и другие улучшения, но вы должны отредактировать свой вопрос и опубликовать больше кода, прежде чем я пойму, как это связано с другими факторами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .