你領導的正確方法,請參見下面我sniplet:
Sub ert()
Dim rng As Range
For Each rng In ActiveSheet.Range("C1:D50").SpecialCells(xlCellTypeVisible)
rng.Select
With Selection
.FormatConditions.Add Type:=xlExpression, Formula1:="=TRUE" 'replace with your formula
.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).StopIfTrue = False
.FormatConditions(1).Interior.Color = 49407 'give it a touch of orange
End With
Next
End Sub
PS沒有人告訴他,愛上四月一號。明天會回來。
編輯,回來更多的熱量:讓我突出。選擇方法模擬你選擇範圍然後選擇。指的是範圍的選擇。該選擇代碼中的廢物資源,並可能導致錯誤(例如,一些不能選擇這樣宏暫停,一個SelectionChange事件觸發等),並期待糟糕。由於上述原因(尤其是糟糕),您不會選擇,您只需定義範圍,然後針對給定範圍運行腳本。這樣,您可以在看起來很酷時節省運行時間。下面的snipplet是你的sub-sub的很酷的變體。
Sub ert()
With ActiveSheet.Range("C1:D50").SpecialCells(xlCellTypeVisible)
.FormatConditions.Add Type:=xlExpression, Formula1:="=TRUE" 'replace with your formula
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).StopIfTrue = False
.FormatConditions(1).Interior.Color = 49407 'give it a touch of orange
End With
End Sub
讓我們回到第一步。爲什麼你需要選擇任何單元格開始?在大多數使用VBA和Excel的應用程序中,絕對沒有理由選擇任何東西(並且經常會讓你的生活更加複雜)。試着解釋你實際上想要對你選擇的細胞做什麼,並且可能有更好的方法。 – psubsee2003 2015-04-01 13:12:34
實際情況是我正在爲管理者構建一個宏。他們將填寫項目要求,包含數據的選定工作表將一次通過電子郵件發送給解決方案團隊。 – 2015-04-01 13:29:10
指定你打算做的事情。將格式應用於所有內容可能會更好,並且在條件格式的* Formula1 *屬性中具有隱藏條件。這樣,如果數據發生變化,指令集將在沒有運行任何宏的情況下再次觸發。如果你希望你的顏色保持靜態,直到下一個宏運行或手動改變,你可以運行一系列指令,沿着「For Each rng In ActiveSheet.Range(」C1:D50「)。SpecialCells(xlCellTypeVisible )」。你的方式仍然是對的,但它對我們來說看起來是錯誤的。 – user3819867 2015-04-02 21:18:23