如何立即传播对 google 工作表中的命名范围的更改?

How do I make changes to a named range in google sheets propagate immediately?

我正在使用 Google 表格来计算我的举重目标。不同的锻炼是基于我每次举重的高分的不同百分比。

我一直在用“=CEILING((0.8*A3/5), 1)*5”之类的东西来计算每天的计划,以代表 A3 中该死的 80%,四舍五入为可整除的东西五点。这是不可维护的。

我现在的工作是使用脚本编辑器提供自定义功能。 “=FIVES('bench')”给我五次的卧推进展。

效果很好,除非我更改值。我在我的每个最大升降机上放置了一个命名范围,这样我就可以调用 getRangeByName 按名称而不是单元格坐标获取值。但是我创建的函数不会被再次调用,所以我一直看到陈旧的值,即使在刷新页面之后也是如此。

我发现另一个 post 建议 getRangeByName 有第二个参数,可以将其设置为 now() 以立即刷新缓存。试过了,看起来已经过时了。我还没有找到关于正在缓存的命名范围的任何其他信息。

当命名范围更新时,我如何告诉我的脚本它需要重新运行?工作表中是否有某种 observer/listener/watcher?如果没有,我对技术持开放态度 - 命名范围只是我在命名变量时遇到的第一件事。

Google 的脚本缓存永远不会允许它在没有恶作剧的情况下工作。期望 foo('bar') 是确定性的,总是返回相同的东西。我一直在传递命名范围的名称,希望我可以使用 getRangeByName 并将名称用作标签。

相反,我只是使用范围作为参数并将第二个字符串作为标签传递:foo(bar, "Bar label")。它有点冗长,但比我试图用来欺骗脚本服务器的东西要少得多。伙计们,不要与框架作斗争。