我想制作一个宏,突出显示选定的行,但是一旦突出显示结束(一旦不再选择该单元格),就不会更改原始单元格的颜色。 *(原始单元格颜色:最初指定的单元格的颜色。)
这是我使用的代码
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Static xRow
If xRow <> "" Then
With Rows(xRow).Interior
.ColorIndex=Xlnone
End with
End If
pRow = Selection.Row
xRow = pRow
With Rows(pRow).Interior
.ColorIndex=6
.Pattern=XlSolid
End With
End Sub
但是当我使用这样的代码时,突出显示处于活动状态,但原始单元格颜色已更改。
我该如何解决?
答案 0 :(得分:1)
可行的方法(未进行测试)是使用条件格式更改颜色,从而使其始终自动恢复原始颜色。不确定此解决方法的性能如何。
在模块中添加以下功能:
Public Function IsSelected() As Boolean
IsSelected = Not Intersect(Application.Caller, Range("SelectedRange")) Is Nothing
End Function
在所需的工作表中添加以下事件:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Names.Add "SelectedRange", Target
End Sub
在所需范围内,添加以下条件的格式:
=IsSelected()