用Worksheet_SelectionChange重写条件格式

我有一些工作表中的代码来突出显示所选单元格的行。 但是,此工作表具有对某些行进行着色的条件格式。 突出显示macros不符合格式条件满足的行(在高亮颜色不覆盖条件格式的颜色的意义上)。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlColorIndexNone ActiveCell.EntireRow.Interior.ColorIndex = 19 'Highlight row End Sub 

有没有人知道一个解决方法,而不删除条件格式? 例如。 我可以暂时禁用一个选定的行,并重新启用它时,该行是不被选中?

格式是应用于所有单元格的一个规则。 我理论上可以为每一行创build一个独立的规则(~500个),然后完全closures它,稍后再重新应用它,但这看起来有点过分。

Worksheet_SelectionChange事件macros中没有必要使用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 

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

你没有透露CF规则是什么,所以我会认为这是非空白的高亮单元格。 将现有CF规则修改为使用公式来确定要格式化哪些单元格,并根据您自己的CF规则调整以下内容,然后将其放入格式值(其中此公式为true):文本框中。

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

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

条件格式覆盖