你领导的正确方法,请参见下面我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