我有一个很大的 Excel 工作表,用于管理大约十几个项目1。工作表的水平方向对应于时间(基本上,相邻的列对应于连续的天数),并延伸到许多水平方向的屏幕。垂直方向的屏幕要短得多(它很容易容纳在一屏内容中)并且更加异构(有些行对应于任务,其他行对应于资源,等等)。
第一列被冻结(这是无价的)。
在这里,我将使用“(4 周)焦点”来指代跨越的矩形单元格范围,水平方向为从最左边可见的非冻结列开始的 4 周间隔,垂直方向为当前正在使用的所有行(大约前 30 行)。
当然,在任何特定时刻哪些特定单元格“处于焦点”取决于工作表当前的“滚动状态”。
有没有办法指示 Excel 将当前“焦点”范围视为全部的表?2
最重要的是,有没有办法告诉 Excel 暂时禁用全部水平滚动和垂直,并且不仅通过滚动箭头或滚动条进行“直接”滚动,而且还有响应某些其他操作而发生的“间接”滚动,例如,使某些当前不完全可见的单元格成为活动单元格?
如果除了禁用滚动之外,修复“焦点”范围还会导致所有通常适用于整个工作表的操作现在仅适用于焦点范围,那就太好了。例如,将CTRL-END
最右侧使用列的最低使用行上的单元格设为活动单元格在对焦范围内(而不是整个工作表)。
有没有办法做这样的事情?
谢谢!
1是的,我知道有专门的软件可以做这种事,但就我的目的而言,Excel 就很好了,非常感谢。
2对于熟悉 Emacs 的人来说,我想到的操作完全类似于 Emacs 的narrow-to-region
命令。
答案1
您需要的是.ScrollArea
返回或设置允许滚动的范围的属性,作为 A1 样式的范围引用。还请注意,滚动区域之外的单元格不能被選中。
这将第一个工作表的滚动区域设置为 C1:AA22:
Worksheets(1).ScrollArea = "C1:AA22"
将此属性设置为空字符串""
以启用整个工作表的单元格选择。