Vba 定义条件格式时出现运行时错误438

Vba 定义条件格式时出现运行时错误438,vba,excel,Vba,Excel,我试图编写一个Excel宏,为工作簿中名为“结果”的工作表设置条件格式。基本上,所需的结果是高亮显示以感叹号(!)开头的所有单元格。我知道解决方案必须很简单,但我一直遇到以下错误:“运行时错误438:对象不支持此属性或方法”,我就是不知道如何使其工作 调试器显示错误发生在第5行,即.Interior.Color Sub ResultsFormating() Sheets("Results").Select With Cells.FormatConditions .Add Type:=xlE

我试图编写一个Excel宏,为工作簿中名为“结果”的工作表设置条件格式。基本上,所需的结果是高亮显示以感叹号(!)开头的所有单元格。我知道解决方案必须很简单,但我一直遇到以下错误:“运行时错误438:对象不支持此属性或方法”,我就是不知道如何使其工作

调试器显示错误发生在第5行,即.Interior.Color

Sub ResultsFormating()

Sheets("Results").Select
With Cells.FormatConditions
  .Add Type:=xlExpression, Formula1:="=left(A1,1) = ""!"" "
  .Interior.Color = RGB(255, 0, 0)
End With

End Sub

如果您能帮我一点忙,我们将不胜感激

Interior是新添加的
FormatCondition
对象的成员,而不是
FormatConditions
集合。另外,最好在设置新格式条件之前删除旧格式条件(如果有),除非目的是为相同的范围创建多个

试试这个:

Sub ResultsFormating()
  With Sheets("Results").Cells.FormatConditions
    .Delete  
    With .Add(Type:=xlExpression, Formula1:="=left(A1,1) = ""!"" ")
      .Interior.Color = RGB(255, 0, 0)
    End With
  End With
End Sub

要弄明白这一点,我可能至少还要花上几个小时,心里充满了挫败感。谢谢大家!@如果要查找
工作表
对象,JaromirSida使用
工作表
集合而不是
工作表
,并将该对象引用提取到其自身的
工作表
局部变量中;这样,您就可以通过早期绑定的成员调用获得IntelliSense,而不是盲目地使用由
工作表
(或
工作表
)集合返回的
对象
。@Mat'smugh这是一个可爱的建议。也可以使用工作表的代号。不幸的是,无论是带有工作表(…)的
还是带有工作表的
(…)
都不会激活intellisense.:(正确。因此将结果提取到一个局部变量。
将工作表作为工作表设置为Dim
设置工作表=工作表(“结果”)
带有工作表
带有
的块将在
工作表
界面下工作,而不是
对象
。而我对
工作表(…)
,我不明白为什么
工作表(…)
不返回工作表界面。但无论如何,您的建议是合理的,而且很有帮助(尽管会减少关于SO:P的问题)