条件格式,仅选择可见单元格

时间:2015-04-01 13:09:28

标签: vba excel-vba excel

我已编写代码来选择特定工作表,并在按钮上单击电子邮件发送所有选定工作表的数据。现在在一个工作表中,在下拉列表中应用了条件格式。

因此要求是选择下拉选项1,然后下面两个单元格不可见。其次,当选择下拉选项2时,所有单元格都可见。

使用我的代码,一切都会被选中。

我试过这段代码:

overallrange = ActiveSheet.Range("C1:D50").SpecialCells(xlCellTypeVisible).Select 

有人可以建议更好的方法来做到这一点....

1 个答案:

答案 0 :(得分:-1)

你走的是正确的方式,请看下面的我的小册子:

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

P.S。没有人告诉他,要爱4月1日。明天会回来。
编辑,返回更多热量:让我突出显示 .Select 方法模拟您选择范围然后选择。指的是范围已选中。代码中的选择会浪费资源并导致错误(例如,某些内容无法选择,因此宏停止,选择更改事件触发等)并看起来糟糕。由于上述原因(尤其是lousiness)您没有选择,您只需定义范围,然后运行给定范围的脚本。通过这种方式,您可以在看起来很酷的情下面的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