2017-08-06 79 views
1

我正试图编写一个Excel宏来为我的工作簿中名为“结果”的工作表设置条件格式。本质上,所需的结果是突出显示所有以感叹号(“!”)开头的单元格。我知道解决方案必须简单,但我不断收到以下错误:'运行时错误438:对象不支持此属性或方法',我只是不知道如何使其工作。当定义条件格式时发生运行时错误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 

一点点帮助,将不胜感激!

回答

3

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

试试这个:

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 
+0

弄清这一点可能会带我至少另一对夫妇的充满挫折小时。谢谢! –

+1

@JaromirSida如果你正在寻找一个'Worksheet'对象,并且将该对象引用提取到它自己的'Worksheet'局部变量中,那么使用'Worksheets'集合而不是'Sheets';这样你就可以通过早期绑定的成员调用来获得智能感知,而不是盲目地关闭'Sheets'(或'Worksheets')集合返回的'Object'。 –

+0

@ Mat'sMug这是一个可爱的建议。也可以使用工作表的代号。不幸的是,用工作表(...)或工作表(...)和工作表(...)都不能激活intellisense .. :( –