问题描述
在更改单元格时,我使用以下公式突出显示黄色行和红色单元格。问题是有时我们要对行进行多个更改,并希望所有具有更改的单元格都保持红色,但是当更改行中的第二个单元格时,此公式会擦除第一个红色单元格。我是否可以添加一些例外,以防止在进行第二次更改时已由红色单元格变为黄色?
Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
Target.EntireRow.Interior.Color = vbYellow
Target.Interior.Color = vbRed
End Sub
解决方法
请尝试使用此代码。
{
"addresses": {
"http": "0.0.0.0"
}
}
未经测试上述过程。实际上,我想知道为什么要使用Workbook事件。但是,我确实测试了下面的功能,也许这就是您所需要的。
Private Sub Workbook_SheetChange(ByVal Sh As Object,ByVal Target As Range)
Dim Cl As Long ' last used column
With Target
If .CountLarge = 1 Then
' change .Row to longest used row number
' if your rows aren't of uniform length
If Sh.Cells(.Row,"A").Interior.Color <> vbYellow And _
Sh.Cells(.Row,"A").Interior.Color <> vbRed Then
Cl = Sh.Cells(.Row,Columns.Count).End(xlToLeft).Column
Sh.Range(Sh.Cells(.Row,1),Sh.Cells(.Row,Cl)).Interior.Color = vbYellow
End If
.Interior.Color = vbRed
End If
End With
End Sub