在 Calc 或 MS Excel 中,当编辑完一行中的单元格后,按 Enter 键将转到下面的下一行。继续这样做,最终您将到达屏幕上可见的最后一行。在这里,当您按 Enter 时,它将进入下一行,但现在是最后一行。像 Nreal Air 眼镜一样,很难在屏幕上看到最后一行(因为底部总是模糊的)。我的解决方案是将当前选定的行保留在中间。这意味着每当按下 Enter 时,宏都会检查新选定的行下有多少行可见。如果小于 3,可见行将向上移动(因此将所选行保持在中间)。下列_答案在 MS Excel 中解决了这个确切的问题。我想在 LibreOffice Calc 中做同样的事情。但是,到目前为止,我一直没有成功编写一个宏来检查所选行下的可见行,并在每次按 Enter 时添加一个新行(因此将下一个所选行保留在屏幕中间)。知道如何在 Calc 中做到这一点吗?
您的任务并不难实现 - 事实上,您只需要使用.setFirstVisibleRow() 方法来更改显示区域,同时考虑“当前行”和“最后一个可见行”的值。例如,这个宏可以执行以下操作:
主要困难在于选择如何运行该宏。例如,您可以将此脚本指定为“选择已更改”事件的处理程序。
但在这种情况下,宏仅适用于分配给它的那些工作表。(顺便说一句,您在问题中引用的 Excel 解决方案的工作原理完全相同 - 仅适用于指定的工作表)。
您可以想到某种通用宏,当您打开任何电子表格时,都会将此事件侦听器分配给所有工作表,并将其分配给整个办公套件。