查看原文
其他

想要高亮Excel中的活动单元格,你可以用这两招

2016-09-28 效率火箭 效率火箭


时不时,我们会在一张N*N的巨型Excel表格上寻找某个单元格上下左右临近的几个数字。真是伤眼,那能有什么办法可以解决这个问题吗?

就是要高亮活动单元格的行/列


是的,这真的是要茫茫单元格中,看出哪个单元格是被选中的,真的太累人。这要怪只能怪Excel不怎么给力,除了给活动单元格来个边框以及其对应行列编号的浅色底纹外,基本无法很好地辨认出活动单元格的上下左右来。如果能像右图那样 ,直接把活动单元格的行和列全部高亮起来,这看起数字来真是要省力太多。

那让我们来看看都有哪两招可以实现右图的效果呢?

VBA大法

但凡提到这种比较复杂的需求,很多人可能会直接想到使用VBA。的确,VBA能够轻轻松松完成这种需求。直接复制下面的代码到本sheet或者ThisWorkbook中,你就能实现下图的效果。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Cells.Interior.ColorIndex = 0

    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub

    Application.ScreenUpdating = False

    With ActiveCell

        Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 19

        Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 19

    End With

    Application.ScreenUpdating = True

End Sub

其实这几行代码可以看作2个主要的步骤:

  • Cells.Interior.ColorIndex=0 - 把整个表格的底纹变为无色透明,这是为了确保之后的高亮显示。因此如果你已经手动为表格中的某些单元格设置了底纹,使用宏命令会使这些设置失效。

  • With ActiveCell...End With - 这条with语句为的就是将活动单元格所在活动区域的行和列用colorindex中编号为19的颜色设置其底纹。如何理解活动区域呢?其实就是与活动单元格相连的不含任何空行、空列的整个区域。举例来说,上图中D18所在活动区域为A17:H24。


条件格式大法

如果你不喜欢用VBA,那你还能够采用条件格式,来实现同样的效果:



操作步骤:

Step 1:选中需要设置条件格式的区域

Step 2:添加一个新的条件格式,并输入=COLUMN()=CELL("col")这么一个公式,并设置底纹颜色。

Step 3:再添加一个条件格式,并输入=ROW()=CELL("row"),并设置同样的底纹颜色。

而这两个公式的具体含义,就是选中活动单元格的列或者行,并设置其底纹颜色。




简单两招,有没有让你豁然开朗。其实,除了底纹颜色上的区别,这两个方法在实际使用过程中还是略有差异的。不知道到细心的你有没有发现呢?也欢迎你来告诉火箭君,你自己的发现哦!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存