【发布时间】:2017-12-05 16:43:40
【问题描述】:
我有一个在前几行中包含标题数据的工作表,然后是一个带有列标题的表格。表头数据包括用于计算表中值的参数。
我想要的是允许用户滚动工作表,使标题数据不再可见,但当表格标题行成为第一行时冻结它。然后,如果他们需要更改参数,他们可以向上滚动并重新看到前几行。
我认为这很容易做到,但我不记得该怎么做。我能找到的唯一选项是“冻结窗格”选项,但这会冻结所有内容,我只希望它在标题行位于顶部时冻结。
这可能吗?
已编辑 - 为了更清楚地说明,冻结窗格选项会冻结所选行上方的所有内容(除非我错过了它),这不是我想要的。我希望工作表的行为类似于顶部可能有广告横幅的网站,然后是导航栏/徽标/等,然后是内容。当您向下滚动时,广告横幅会移出视图,但当导航栏位于顶部时,它会停止并保持在视图中,同时内容继续滚动。
假设我有前 5 行有单元格来捕获输入值。然后第 6 行是表格标题,第 7-100 行是表格数据。我希望用户能够点击向下滚动按钮 5 次以移过输入值。然后我希望第 6 行冻结在顶部,以便当用户继续滚动时,表格标题可见。相反,当用户向上滚动时,第 6 行将保持在顶部,直到用户到达第 7 行,然后如果他们继续滚动,输入值就会进入视图。
如果您使用“格式为表格”功能并指示所选内容具有标题行,Excel 会执行类似的操作。然后在滚动时,列标题将替换“A”、“B”、“C”等地址标签。这对我来说不会直接起作用,因为表结构有点复杂。
【问题讨论】:
-
见here。
-
不确定您为什么添加 vba,答案还建议使用 vba 选项。只需选择行/列(一个或两个),然后选择冻结窗格
-
感谢 Scott,但据我所知,该线程提供了冻结行的解决方案,但不是动态的。我用更多信息更新了帖子,在示例中,我只希望第 6 行在表格的第一行时冻结。我还是 VBA 的新手,我想我可以写一个检查以查看第 6 行是否是第一行,然后使用另一个线程中的冻结代码,但这似乎效率低下。