我已编写代码来选择特定工作表,并在按钮上单击电子邮件发送所有选定工作表的数据。现在在一个工作表中,在下拉列表中应用了条件格式。
因此要求是选择下拉选项1,然后下面两个单元格不可见。其次,当选择下拉选项2时,所有单元格都可见。
使用我的代码,一切都会被选中。
我试过这段代码:
overallrange = ActiveSheet.Range("C1:D50").SpecialCells(xlCellTypeVisible).Select
有人可以建议更好的方法来做到这一点....
答案 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