Excel 临时单元格高亮显示,恢复原始单元格颜色
我想制作一个宏,高亮显示所选行,但在高亮显示结束后(不再选择单元格后)不会更改原始单元格颜色。 *(原始单元格颜色:原始指定单元格的颜色。) 这是我使用的代码Excel 临时单元格高亮显示,恢复原始单元格颜色,excel,vba,highlight,Excel,Vba,Highlight,我想制作一个宏,高亮显示所选行,但在高亮显示结束后(不再选择单元格后)不会更改原始单元格颜色。 *(原始单元格颜色:原始指定单元格的颜色。) 这是我使用的代码 Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Static xRow If xRow <> "" Then With Rows(xRow).Interior .ColorIndex=Xlnone End with End
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
子工作表\u选择更改(以Excel.Range形式显示的ByVal目标)
静态X行
如果X行为“”,则
带行(xRow)。内部
.ColorIndex=Xlnone
以
如果结束
船头=选择。行
xRow=船头
带排(船头)。内部
.ColorIndex=6
.Pattern=XlSolid
以
端接头
但是当我使用这样的代码时,Highlight是活动的,但是原始单元格的颜色会改变。
如何修复它?可能有效的方法(未测试)是使用条件格式更改颜色,从而使其始终自动恢复原始颜色。不确定此解决方案的性能会有多好
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()
此
.ColorIndex=X | none
是无效语法。它应该是xlNone
和xlSolid
。我建议激活Option Explicit
:在VBA编辑器中,转到工具›选项›以避免类似的打字错误。啊,对不起,这是打字错误。。不是|,我想写l(l)。。对不起,我想你正在寻找这样的东西:谷歌上有几个关于如何突出显示单元格、行和列的教程。使用其中一个,这样你就不需要自己发明了。“我不是美国人,所以我不擅长英语”-没关系,美国人也不擅长英语-如果你想保留原色,你必须将其存储在某个地方,而不是将其擦除。非常感谢你的回答,我现在就做:D@Chae-HeeKim如果它解决了您的问题,请将其标记为解决方案: