阅: 60 | 回: 2

-
积分:0
-
财富值:2.0
-
身份:普通用户
Sub 冻结首行()
Dim selectedRange As Range
If TypeName(Selection) <> "Range" Then
MsgBox "请选中单元格区域!", vbExclamation
Exit Sub
End If
' 获取选中的区域
Set selectedRange = Selection
' 记录地址(如 "A1:B10")
Rows("1:1").Select ' 选中首行,不然会只冻结当前展示的第一行。
With ActiveWindow
.FreezePanes = False ' 先取消现有冻结
.SplitRow = 1 ' 设置拆分位置在第1行下方
.FreezePanes = True ' 启用冻结
End With
'回到之前的位置
Range(rangeAddress).Select
Dim selectedRange As Range
Dim rangeAddress As String
' 检查是否选中了单元格(避免错误)If TypeName(Selection) <> "Range" Then
MsgBox "请选中单元格区域!", vbExclamation
Exit Sub
End If
' 获取选中的区域
Set selectedRange = Selection
' 记录地址(如 "A1:B10")
rangeAddress = selectedRange.Address
'开始冻结
Rows("1:1").Select ' 选中首行,不然会只冻结当前展示的第一行。
With ActiveWindow
.FreezePanes = False ' 先取消现有冻结
.SplitRow = 1 ' 设置拆分位置在第1行下方
.FreezePanes = True ' 启用冻结
End With
'回到之前的位置
Range(rangeAddress).Select
End Sub
' 取消冻结这里没记录选中行,需要的可以按上面DIY一下
Sub 取消冻结()
With ActiveWindow
.FreezePanes = False ' 取消冻结
.Split = False ' 彻底移除拆分(必要,不然会留着拆分窗口)
End With
End Sub
With ActiveWindow
.FreezePanes = False ' 取消冻结
.Split = False ' 彻底移除拆分(必要,不然会留着拆分窗口)
End With
End Sub
我的个性签名