我有一个相对较大的电子表格(300 行,30 列),我根据电子表格中的值对其进行着色。我只使用两次访问来最少地访问 API:
getValues(...)
用于访问数据范围的所有值。setBackgrounds(...)
设置数据范围的所有背景。
运行时间大约为半秒或更短。但是,如果我使用 onEdit()
让它在每次编辑时运行,它就会受到阻碍,但我也不希望它在我不编辑它时定期更新,看起来很浪费。有没有一个好的方法可以让脚本以“延迟”的方式运行,在我编辑时定期更新?
最佳答案
首先,我想说您应该查看 Google 表格的条件格式(表格中的“格式”>“条件格式”菜单项)——您也许可以在完全不涉及 Apps 脚本的情况下完成您需要的大部分操作。
如果失败,您可以设置 regular time-based trigger检查编辑并适当更改背景。您可以使用单独的 onEdit() 触发器来支持此触发器,以记录内部更改的内容。流程如下:
- 发生更改并触发 onEdit()
- onEdit() 触发器仅将更改的单元格位置记录到局部变量或缓存
- 基于时间的触发器每分钟/小时/每当触发
- 基于时间的触发器会检查缓存中是否有已编辑的单元格,更改其背景,然后从缓存中清除它们
也就是说,根据您的工作流程,这种方法可能并不比简单地使用时间触发器直接更改单元格好多少。
关于triggers - 使用 Google Apps 脚本编辑时延迟执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450158/