V

【VBA】用代码给Excel装一盏聚光灯

肉松 笔记 2019-12-06

WPS自带“聚光灯”功能,excel好像没有自带,下面介绍一种方法,使用VBA代码也可以实现“聚光灯”的效果。所谓聚光灯,可以简单理解成通过对工作表的行列填充颜色,突出显示被选中的单元格,仿佛该单元格被聚光灯照亮似的。

动态图示意:

img.gif

代码如下:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
 Application.ScreenUpdating = False
 Cells.Interior.ColorIndex = -4142        '取消单元格原有填充色,但不包含条件格式产生的颜色。
 Rows(Target.Row).Interior.ColorIndex = 33        '活动单元格整行填充颜色
 Columns(Target.Column).Interior.ColorIndex = 33        '活动单元格整列填充颜色
 Application.ScreenUpdating = True
End Sub

小贴士:
1、代码使用了工作簿事件,因此需要复制粘贴在VBE界面ThisWorkbook的代码窗口下(具体操作可见上面的动画),如此才对工作簿的每一张工作表起到聚光灯的效果。如果只需要某一张工作表拥有聚光灯,可以换用工作表事件。
2、聚光灯很有用,比如查看明细行列繁多的数据时,可以提高数据阅读清晰度和数据输入的准确度;但一旦使用VBA代码,Excel将会丧失“后悔”功能,也就是说Ctrl+Z的撤销功能会失去;另外它会影响Excel的反应效率。
3、该代码会取消单元格原有设置的填充色,但不取消【条件格式】以及【表】功能设置的单元格填充色……

PREV
Windows下配置阿里DDNS
NEXT
小粉和公举很搭哦

评论(4)

发布评论
  1. 露露 露露

    很好用!!谢谢!
    但是还想问下楼主知道怎么在所选单元格里面高亮单元格吗?
    因为设置出来的是横竖两个颜色,想要一个所选单元格还能是另外一个颜色的

    1. 'Rows(Target.Row).Interior.ColorIndex = 33
      'Columns(Target.Column).Interior.ColorIndex = 33
      上面两行删除,改成下面这行。
      Cells(Target.Row, Target.Column).Interior.ColorIndex = 33

  2. 看到你的小贴士后,我还是就算了吧。

    1. 条件格式也可以实现的,另外有activeX插件也能实现。