ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 Excel转在线管理系统,怎么做看这里 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 EH云课堂直播课程免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 1103|回复: 0

[分享] Excel表格实现聚光灯功能-VBA方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-10-30 22:03 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:Range对象
本帖最后由 yuezheng710 于 2017-10-30 22:05 编辑

        最近研究了下Excel表格针对单个单元格实现聚光灯的方法,这样在表中行列数据很多的时候,可以准确定位到对的单元格,效果如下图:
spotlight.gif
        网上找到很多方法,基本原理大都是使用“条件格式”中自定义公式,然后在sheet的change事件中加入Calculate进行易失性处理,但是该方法只适用于一个sheet,多一个sheet就要多一次设定,条件设置也比较麻烦。
       本文给出只需简单的几句VBA语句来实现“聚光灯”功能,并且适用于Workbook中的所有Sheet,具体方法如下:
  • Alt+F11组合键,调出VBE编译界面;
  • 点中“工程”栏中的“ThisWookbook”

ThisWorkbook.jpg

    3. 再按下图选择“Workbook”中的“SheetSelectionChange”事件
Workbook_SheetSelectionChange.jpg
    4. 此时代码编译窗口就会自动出现子过程:
  1. Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  2. End Sub
复制代码

    在这两句中输入/复制如下代码:
  1. Dim v() As String, m As String
  2.    
  3. v = Split(Target.Address, ":")
  4. If UBound(v) - LBound(v) = 0 Then
  5.     v = Split(v(0), "[        DISCUZ_CODE_1        ]quot;)
  6.     m = v(1) & ":" & v(1) & "," & v(2) & ":" & v(2)
  7.     Range(m).Select
  8.     Target.Activate
  9. End If
复制代码

    5. 实际效果如下图:
spotlight_vba_code-total.jpg
    6. 至此,回到表格中愉快的操作吧
    7. 当然,操作结束后另存为启用宏的工作簿(xlsm)格式,即可将此VBA代码保存到工作簿中;
    8. 如果保存为xlsx格式,则不会保存此VBA代码,当然由于代码很简单,每次需要的时候操作复制下也很简单,依个人喜好自定。

评分

参与人数 1鲜花 +2 收起 理由
zpy2 + 2 值得肯定

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2019-12-9 09:46 , Processed in 1.401281 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表