在wps中有个聚光灯功能,可以实现高亮选中的单元格所在的行和列。
在excel中虽然没有内置这个功能,但是可以通过vba代码实现类似的效果。
如下动画所示:

在Sheet1模块中插入如下的Worksheet_SelectionChange事件代码,即可实现简单的聚光灯功能:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
Dim oWK As Worksheet
Dim oRng As Range
Set oWK = Excel.ActiveSheet
Set oRng = Target.CurrentRegion
Dim oFC As FormatCondition
iRow = Target.Row
iCol = Target.Column
sF = "=OR(ROW()=" & iRow & ",COLUMN()=" & iCol & ")"
iCol = oRng.FormatConditions.Count
'先删除原来的条件格式
For Each oFC In oRng.FormatConditions
oFC.Delete
Next
'添加以公式为判断依据的条件格式
Set oFC = oRng.FormatConditions.Add(xlExpression, , sF)
With oFC
'设置条件格式的填充色
.Interior.Color = vbYellow
End With
End If
End Sub
以上代码的原理是用条件格式来实现聚光灯功能。


发表评论