本帖最后由 yuezheng710 于 2017-10-30 22:05 编辑
最近研究了下Excel表格针对单个单元格实现聚光灯的方法,这样在表中行列数据很多的时候,可以准确定位到对的单元格,效果如下图:
网上找到很多方法,基本原理大都是使用“条件格式”中自定义公式,然后在sheet的change事件中加入Calculate进行易失性处理,但是该方法只适用于一个sheet,多一个sheet就要多一次设定,条件设置也比较麻烦。 本文给出只需简单的几句VBA语句来实现“聚光灯”功能,并且适用于Workbook中的所有Sheet,具体方法如下: Alt+F11组合键,调出VBE编译界面;
点中“工程”栏中的“ThisWookbook”
3. 再按下图选择“Workbook”中的“SheetSelectionChange”事件
4. 此时代码编译窗口就会自动出现子过程:
- Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- End Sub
复制代码
在这两句中输入/复制如下代码: - Dim v() As String, m As String
-
- v = Split(Target.Address, ":")
- If UBound(v) - LBound(v) = 0 Then
- v = Split(v(0), "[ DISCUZ_CODE_1 ]quot;)
- m = v(1) & ":" & v(1) & "," & v(2) & ":" & v(2)
- Range(m).Select
- Target.Activate
- End If
复制代码
5. 实际效果如下图:
6. 至此,回到表格中愉快的操作吧
7. 当然,操作结束后另存为启用宏的工作簿(xlsm)格式,即可将此VBA代码保存到工作簿中;
8. 如果保存为xlsx格式,则不会保存此VBA代码,当然由于代码很简单,每次需要的时候操作复制下也很简单,依个人喜好自定。
|