【发布时间】:2020-06-05 16:12:50
【问题描述】:
我有一个谷歌表格,其中单元格中有一些功能,例如:
=CLEAN(SUBSTITUTE(CONCATENATE("https:",scrape(A1)),"https:",))
=CLEAN(SUBSTITUTE(CONCATENATE("https:",scrape(B1)),"https:",))
在幕后,我正在运行脚本函数,该函数会提取单元格的输出(在抓取函数运行后)并通过 API 将值推送到第 3 方数据库。
我通过这种方法定期运行脚本函数:
ScriptApp.newTrigger('API_Data_push_function')
.timeBased()
.everyHours(24)
.create();
但我注意到在第 3 方数据库中的值会像
#NAME?
但是当我打开谷歌表格并手动运行脚本功能时,它运行良好。
所以,我想了解是否需要打开 google sheet UI 才能使单元格功能正常运行?或者,如果问题是 API 数据推送函数的运行速度快于返回 #NAME? 值的单元函数。
任何人都可以确认是否需要打开 google 表格才能使单元格功能正常工作?如果是的话,脚本有什么方法可以在脚本开始运行之前强制单元函数先运行?
【问题讨论】:
-
谁能确认是否需要打开 google 表格才能使单元格功能正常工作? 是的。当你不想打开工作表时,为什么要使用单元格函数?
-
嗨@TheMaster - 只是为了确认一下,你是说需要打开谷歌表才能使功能正常运行吗?按照 Cooper 之前的说法,它不需要打开。是否有任何帮助文档可用于确认此信息?关于我为什么要在脚本上使用函数。我想,据我所知,向谷歌工作表 UI 添加函数比在代码中更容易。如果我错了,请纠正我。在一个单元格中,我只需要在代码中添加函数,我需要定义工作表,为每个函数获取单元格范围,然后为我想要结果的每个单元格设置值。
-
嗨@TheMaster我只是想确认我的上述问题/评论是否有意义?如果没有,请告诉我,我很乐意以不同的方式解释。我真的在寻找确认谷歌表格单元格功能是否需要打开表格。我曾经处理过一些过去的工作表,其中一张工作表从另一张工作表中获取价值,而另一张工作表正在使用单元格函数,并且它总是有效。但是现在我遇到了问题,我开始质疑在不打开谷歌工作表的情况下单元格功能是否总是有效。
-
AFAIK,它没有。 stackoverflow.com/questions/49268415 通常数据是缓存的。在导入函数和可能的自定义函数的情况下尤其如此。检验这个理论并不难。创建一个新工作表>创建一个虚拟自定义函数>创建一个虚拟触发函数以将数据记录到堆栈驱动程序。如果它显示
#NAME?,那么你已经回答了你的问题。 -
关于您对 Google 表格功能易用性的评论,这取决于您对脚本的了解。最好不要将工作表函数与脚本混合使用。至于如何,您通常会使用批处理操作-> 所以,
getValue"s" 和setValue"s"。有关最佳做法,请参阅 tag info page。
标签: javascript google-apps-script google-sheets google-sheets-formula google-apps