Copy-pasted from the Google forums,被告知要搬到这里。
我有一张与许多同事共享的工作表,用作事件日志;我们记录全天发生的问题,以及我们如何修复它们。每个事件都是一个新行。我们想让一个脚本在加载时运行,将用户带到最后一个条目,因为我们不想向下翻阅1300多个条目。
我创建了一个找到最后一个条目的脚本,并通过函数 setActiveSelection(var)将光标放在那里。
问题是,当光标移动右侧单元格时,窗口没有,它会停止大约15个单元格。因此,如果最新的条目位于第1300行,则光标将位于A1300,但窗口将在其上方大约一个窗口高度,窗口中心的行1285。如果我使用箭头键移动光标,窗口会跳转以聚焦光标。我试图覆盖变量并进入更低价值的行(如500及以下),并且在结束之前尝试首先进入中间点(或者像行1200这样的近端点),怀疑是工作表只是没有加载足够快的脚本。我发现在第一次运行脚本时让它专注于光标的唯一方法是在选择更改之前使用 Utilities.sleep(2000)进行2秒“等待”。看起来似乎在指令移动时纸张尚未完成装载,因此窗口不会尽可能地下降。
我认为这是一个非常笨重的解决方案,因为两秒钟的延迟会根据查看工作表的PC的规格而变化。有些同事使用旧款笔记本电脑;更少的RAM,旋转的磁盘驱动器等,只需将工作表加载到脚本运行的点就需要多达5倍,更不用说当工作表准备好光标跳转时。是否有一个功能来检查工作表是否已完全加载,以便我可以检查它而不是盲目猜测它将如何记录?