Excel VBA: Interseccionar o método com vários intervalos de nomes [closed]

0

O Intersect não funciona.

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

Dim WS As Worksheet 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
    
por Anao 28.01.2015 / 21:09

1 resposta

2

O Intersect não está funcionando porque cada parâmetro deve ter uma célula ou células comuns. Não é uma situação de OR; é um AND. Você precisa usar essencialmente Target AND (NTit OR NInf OR NDat) . Isso pode ser feito combinando Intersect com Union .

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

Isso parece ser de uma macro de evento Worksheet_Change . Se for esse o caso, não será necessário declarar e atribuir WS . Você poderia usar apenas ME como o objeto da planilha. Há outras melhorias que eu poderia sugerir, mas você poderia editar sua pergunta e postar mais do seu código antes que eu pudesse ver como isso se relaciona com outros fatores.

    
por 29.01.2015 / 05:35