使用 Worksheet_SelectionChange 覆盖条件格式

Override Conditional Formatting with Worksheet_SelectionChange

我在工作中有一些代码sheet 用于突出显示所选单元格的行。但是,此 sheet 具有条件格式,可以为某些行着色。突出显示宏不适用于满足格式条件的行(在某种意义上,突出显示的颜色不会覆盖条件格式的颜色)。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   Cells.Interior.ColorIndex = xlColorIndexNone 
    ActiveCell.EntireRow.Interior.ColorIndex = 19 'Highlight row
End Sub

有没有人知道在不删除条件格式的情况下解决这个问题的方法? 例如。我可以为选定的行暂时禁用它并在取消选择该行时重新启用它吗?

格式是适用于所有单元格的一条规则。我认为理论上我可以为每一行(大约 500 行)创建一个独立的规则,然后完全关闭它,然后重新应用它,但这似乎有点过分。

无需在 Worksheet_SelectionChange 事件宏中使用 ActiveCell。那就是目标is/does.

修改您的 Worksheet_SelectionChange 使其更接近于以下内容。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Target.Name = "mySelection"
    Cells.Interior.Pattern = xlNone
    Target.EntireRow.Interior.ColorIndex = 19
End Sub

现在您将不断地为每个新选择的单元格重新定义命名范围

你没有透露 CF 规则实际上是什么,所以我假设它是突出显示非空白的单元格。将现有的 CF 规则修改为 Use a formula to determine which cells to format variety 并调整以下内容以适合您自己的 CF 规则,然后将其放入 Format此公式为真的值: 文本框。

=AND(A1<>"", ROW(A1)<>ROW(mySelection))

通过在 AND 函数中添加布尔条件并不断将 mySelection 范围重新定义为当前选择,您可以覆盖 CF 规则的格式设置。