Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Sel As Range, ScRow As Long
Application.ScreenUpdating = False
With ActiveWindow
ScRow = .ScrollRow
If .SplitRow = 0 And ScRow > 10 Then
.ScrollRow = 10: Range("13:13").Select
.FreezePanes = True
.ScrollRow = ScRow + 3: Target.Select
ElseIf .FreezePanes = True And ScRow <= 14 Then
.FreezePanes = False
End If
End With 'ActiveWindow
Application.ScreenUpdating = True
End Sub
3条答案
按热度按时间carvr3hs1#
你只能在一个位置冻结窗格,但是如果你要寻找类似这样的东西,你可以使用冻结窗格(单元格“A13”)并隐藏从1到9的行来获得它:
顶部滚动条:
向下滚动后:
agxfikkp2#
对于VBA解决方案,每当选择更改时都会运行下面的程序,并将实现您所要求的效果。
然而,一个更简单、更可靠的解决方案是选择表格的整个数据区域,然后按Ctrl+T转换为表格(确保选中“我的表格有标题”框)。这样,当你向下滚动时,列标题(A、B、C等)将被表格列标题名称替换
zyfwsgd63#
我通过创建一个VBA按钮来在需要时隐藏/显示第1行到第9行,从而解决了这个问题