2017-08-06 76 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 .. :( –