滚动然后锁定行



我有一个工作表,它的前几行有标题数据,后面是一个带有列标题的表。表头数据包括用于计算表中值的参数。

我想要的是允许用户滚动工作表,使标题数据不再可见,但当表格标题行成为第一行时,将其冻结。然后,如果他们需要更改参数,他们可以向上滚动,然后返回到视图的前几行。

我觉得这很容易做到,但我不记得怎么做了。我能找到的唯一选项是"冻结窗格"选项,但它会冻结所有内容,我只希望它在标题行位于顶部时冻结。

这可能吗?

编辑-为了增加更多的澄清,冻结窗格选项冻结所选行上方的所有内容(除非我错过了它),这不是我想要的。我希望表单的行为类似于网站,顶部可能有广告横幅,后面是导航栏/徽标等。,然后是内容。当你向下滚动时,广告横幅会移出视图,但当导航栏位于顶部时,它会停止并保持在视图中,同时内容会继续滚动。

假设我有前5行,它们有用于捕获输入值的单元格。第6行是表标题,第7-100行是表数据。我希望用户能够按下向下滚动按钮5次,以越过输入值。然后我希望第6行在顶部冻结,这样当用户继续滚动时,表格标题就可见了。相反,当用户向上滚动时,第6行保持在顶部,直到用户到达第7行,然后如果他们继续滚动,则输入值进入视图。

如果您使用"格式化为表"函数并指示所选内容具有标题行,Excel也会执行类似的操作。然后滚动时,列标题将替换"A"、"B"、"C"等地址标签。这对我来说不会直接起作用,因为表结构有点复杂。

据我所知,您希望保持可见的行或列不是第一个。这有点异国情调。

如果您想隐藏可配置文件以节省视觉空间并始终保留标题:

只需冻结配置和标题所需的行/列即可。然后隐藏视图中不需要的行/列。

你甚至可以有一个简单的按钮,通过点击进行隐藏和取消隐藏:

Sub transaction1()
    Rows("10:50").Hidden = Not Rows("10:50").Hidden
End Sub

至于冻结窗格,以防有人不知道你可以冻结多少。如果要冻结列A和B以及行1和2,只需单击C3,然后使用冻结功能。如果你只想冻结10行-点击A11,然后使用冻结。

尽管我通常只是将我的服务空间卸载到其他地方,并使用=HYPERLINK()快速往返

在任何情况下,您所需的结果都不会比您可以轻松导航的其他方式更方便。因此,如果我已经滚动到第14000行,如果我想滚动回开始查看我的设置,我仍然需要浏览14k行。有一个始终冻结的设置区域和标题可以更快地导航。如果你的设置区域占用了那么多空间,可以移动它并为它创建更紧凑的导航,也可以根据需要隐藏/显示它。

毫无疑问,你可以用更奇特的方式来达到效果,但这样做是强制性的吗?

在工作表的代码页中使用此选项(右键单击工作表名称选项卡,查看代码)。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim iVISROWS As Long
    Dim iHDRROWS As Long
    iVISROWS = 5
    iHDRROWS = 3
    Cells(1, 1).Resize(iHDRROWS, 1).EntireRow.Hidden = _
       Target(Target.Rows.Count).Row > iVISROWS
End Sub

(可选)取出iVISROWSiHDRROWS的声明和赋值,并将以下内容放入模块代码表的声明区域(顶部)。

Option Explicit
Public Const iVISROWS As Long = 5
Public Const iHDRROWS As Long = 3

播放标题行数(iHDRROWS)和触发隐藏标题行的当前选择的底部(iVISROWS),直到您得到您想要的结果。

我也遇到了同样的问题,而且做上面所有编码的技术知识要少得多。我的解决方法非常简单。在图纸顶部插入新行。将表格的标题复制到新行1,然后像往常一样冻结最上面的一行。当你滚动时,最上面的一行保持在你的桌子上方,其余的消失。如果向上滚动,您的原始标题仍然保留在适当位置,以便根据需要进行筛选。

最新更新