01 工作表

聚焦活动单元格所在的行列

  把工作表当PPT展示数据时,行列过多,识别费力!同一行或同一列往往是有延伸关系的,如果在选择单元格时,该行列都突出显示呢?来介绍聚焦的方法。

  所谓聚焦,其实就是在选择单元格时,改变单元格所在的行和列的底色,这样就一下子就变得清晰起来!提高阅读(或者数据录入)的效率。

  当然,使用WPS是可以的,它本身自带有这种功能,但Excel是没有的 !

结果如图所示:
点击放大的图片

  要实现它,有两种方式 :

  • 一、通过单元格区域设置条件格式;
  • 二、通过VBA代码。

一、通过单元格区域设置条件格式

  通过条件格式来实现,其实弊端还是挺多的:

  • 1、只能在设置条件格式的区域内有效;
  • 2、当前区域够大,条件格式的执行效率就不高了(带来卡顿);
  • 3、不能随活动单元格的变化自动更新,双击时聚焦效果才会实现。
实现步骤
  • 1、选择需要呈现效果的单元格区域;
  • 2、条件格式→新建规则→使用公式确定要设置格式的单元格;
  • 3、输入公式=(OR(CELL("row")=ROW(),CELL("col")=COLUMN()));
  • 4、设置条件格式(示例是用明黄的鲜艳底色)。
点击放大的图片

二、通过VBA代码

  通过VBA代码的好处可太多了

  • 1、不受单元格区域的限制,整行和整列都可以聚焦到;
  • 2、数据太多也不担心执行效率的问题;
  • 3、可以实现在一个工作表内聚焦,也可以在一个工作簿内的所有工作表都实现,改变代码放置的位置即可;
  • 4、单元格选中即更新。

运行视频:

源码下载:

VBA实现过程:
  • 1.代码放置在工作表事件或者工作簿事件,决定效果只在某个工作表中实现、还是在工作簿内的所有工作表中实现;
  • 2.Cells.Interior.ColorIndex,先取消所有单元格的底色;
  • 3.Rows(Target.Row)\Columns(Target.Column).Interior.ColorIndex,在设置活动单元格的整行和整列的底色。
示例代码
复制成功!
1

'工作表内聚焦,工作表事件Worksheet_SelectionChange
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.ScreenUpdating = False               '禁止屏幕更新

    Cells.Interior.ColorIndex = -4142                '取消单元格原有底色
    Rows(Target.Row).Interior.ColorIndex = 44        '活动单元格整行填充颜色(亮橙)
    Columns(Target.Column).Interior.ColorIndex = 44  '活动单元格整列填充颜色(亮橙)

    Application.ScreenUpdating = True

End Sub

'工作簿内所有工作表都实现聚焦,工作簿事件Worksheet_SelectionChange
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = False               '禁止屏幕更新

    Cells.Interior.ColorIndex = -4142                '取消单元格原有底色
    Rows(Target.Row).Interior.ColorIndex = 44        '活动单元格整行填充颜色(亮橙)
    Columns(Target.Column).Interior.ColorIndex = 44  '活动单元格整列填充颜色(亮橙)

    Application.ScreenUpdating = True
End Sub

请开发者喝杯咖啡 请开发者喝杯咖啡!