use*_*721 4 excel formatting events vba
我在工作表中有一些代码来突出显示所选单元格的行.但是,此工作表具有条件格式,可以为某些行着色.突出显示宏不适用于满足格式条件的行(在突出显示的颜色不会覆盖条件格式的颜色的意义上).
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlColorIndexNone
ActiveCell.EntireRow.Interior.ColorIndex = 19 'Highlight row
End Sub
Run Code Online (Sandbox Code Playgroud)
有没有人知道解决这个问题而不删除条件格式?例如.我可以暂时禁用所选行,并在取消选择行时重新启用它吗?
格式化是应用于所有单元格的一个规则.我理论上我可以为每一行(约500个)创建一个独立的规则,然后将其完全关闭然后重新应用它,但这似乎有点过分.
小智 5
无需在Worksheet_SelectionChange事件宏中使用ActiveCell.这就是Target的目标.
将Worksheet_SelectionChange修改为更接近以下内容.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Name = "mySelection"
Cells.Interior.Pattern = xlNone
Target.EntireRow.Interior.ColorIndex = 19
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,您将不断为每个新选择的单元格重新定义命名范围.
你没有透露CF规则究竟是什么,所以我假设这是非空白的突出显示单元格.将现有CF规则修改为使用公式来确定要格式化的单元格并调整以下内容以适合您自己的CF规则,然后将其放入此公式为真的格式值:文本框.
=AND(A1<>"", ROW(A1)<>ROW(mySelection))
Run Code Online (Sandbox Code Playgroud)
通过在AND函数中添加布尔条件并不断将mySelection范围重新定义为当前选择,您可以覆盖CF规则的格式.

| 归档时间: |
|
| 查看次数: |
3035 次 |
| 最近记录: |