|

楼主 |
发表于 2017-9-30 16:07
|
显示全部楼层
续
本帖最后由 zjyzfn 于 2017-9-30 16:18 编辑
- '通用模块-----------------------------------------------------------------------
- '全局变量
- Public Highlight '高亮对象,高亮显示选中单元格所在行、列
- Public H_flag As Boolean '标记高亮显示开启状态
- Public sta_flag As Boolean '标记高亮显示开启状态2,防止事件二次触发
- '
- Sub auto_open()
- On Error Resume Next
- Set Highlight = New HL_SH
- Set Highlight.SHTd = Application '注册事件
- End Sub
- '
- Sub 选择高亮()
- If H_flag Then
- H_flag = False
- Else
- H_flag = True
- End If
- sta_flag = False
- End Sub
- '
- '类模块
- Public WithEvents SHTd As Application
- Private Sub SHTd_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
- Dim addr As String
- Dim ACtAddr As String
- If H_flag = False Then Exit Sub
- If sta_flag Then Exit Sub '防止事件二次触发
- 'On Error Resume Next
- If Not (Target.EntireRow.Address(False, False) = Target.Rows.Address(False, False) _
- Or Target.EntireColumn.Address(False, False) = Target.Columns.Address(False, False)) Then
- Application.ScreenUpdating = False
- addr = Target.EntireRow.Address(False, False)
- addr = addr & "," & Target.EntireColumn.Address(False, False)
- addr = Replace(addr, "1:" & Cells.Rows.Count & ",", "")
- addr = Replace(addr, ",1:" & Cells.Rows.Count, "")
- ACAddr = ActiveCell.Address(False, False) '记录活动单元格地址
- sta_flag = True
- Range(addr).Select
- Range(ACAddr).Activate '恢复单元格活动状态
- sta_flag = False
- Application.ScreenUpdating = True
- End If
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|