Você precisa usar o Range Object em vez de um String
Dim WS As Worksheet, NTT As Range
Set WS = ActiveSheet
Set NTT = WS.Range("$A$1:$U$154")
If Not Intersect(Target, NTT) Is Nothing Then............
Você estava muito perto!
Por que A obter este erro: O método 'Range' do objeto '_Global' falhou Quando eu coloquei:
Private Sub Workbook_SheetChange(ByVal WS As Object, ByVal Target As Range)
Dim NTT As Range
Set WS = ActiveSheet
Set NTT = WS.Range("$A$1:$U$154")
If Not Intersect(Target, Range("NTT")) Is Nothing Then '< error Here
Mas não quando eu coloco
Private Sub Workbook_SheetChange(ByVal WS As Object, ByVal Target As Range)
Dim NTT As Range
Set WS = ActiveSheet
If Not Intersect(Target, Range("A$1:$U$154")) Is Nothing Then
Infelizmente ainda em um código eu preciso usar este formato: Range ("Name")
Tags microsoft-excel vba