2017-04-26 111 views
-1

我在替换代码中的范围变量WeekdayRule时遇到问题。第三行代码工作得很好。下面的第四行代码触发一个应用程序定义或对象定义的错误'1004'问题代替范围变量(Excel VBA)

我在这里错过了什么?

Dim WeekdayRule As Range 
    Set WeekdayRule = ActiveSheet.Range("M17:O112") 

    ActiveSheet.Range("M17:O112").FormatConditions.Delete 

    With ActiveSheet.Range("WeekdayRule").FormatConditions _ 
     .Add(Type:=xlExpression, Formula1:="=AND(M17<=($N$8*$V17), $V17>=$N$9)") 
     .Interior.ColorIndex = 44 
    End With 
+0

'ActiveSheet.WeekdayRule.FormatConditions'使用它并在行尾删除_。 – Masoud

回答

1

WeekdayRule已经是一个定义的范围对象,所以使用:

WeekdayRule.FormatConditions.Delete 
With WeekdayRule.FormatConditions _ 
... 
-1

你需要以指定FormatCondition(注意单数)对象指定条件格式的指数集合你想删除。例如:

ActiveSheet.Range("M17:O112").FormatConditions(index).Delete 
+0

这不是真正的问题。首先他说这行代码运行良好。其次,如果你想删除* all * FormatConditions并且因此复数是正确的,你不需要指定索引。 –