【问题标题】:Does google sheet needs to be opened for a function to run?是否需要打开谷歌表才能运行功能?
【发布时间】: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


【解决方案1】:

不...但您可能需要在脚本中使用 SpreadsheetApp.flush() 以确保在中间操作后从电子表格中读取值时,您会获得正确的值。

【讨论】:

  • 嗨@Cooper 感谢您确认无需打开 google 表格即可使单元格功能正常工作。是的,我正在使用冲洗仍然得到#NAME?当我让工作表在计时器上自动运行但当我手动运行脚本时,它可以工作。只是为了确认冲洗的正确位置是什么?
  • 谢谢@Cooper 一个简单的问题,是否有任何代码/函数可以添加到我的脚本中以检查是否有任何单元格有错误然后什么也不做,如果没有则只触发我的函数?我不确定通过脚本检查工作表中的错误的最佳方法是什么。
  • 嗨@Cooper 我只是想澄清一下是否不需要打开谷歌表格才能使单元格功能正常工作。您是否有机会确认 TheMaster 用户在上述 cmets 中指的是什么?
  • @Cooper 我认为这是一个绑定脚本,而不是需要 openById() 的独立脚本。当脚本被绑定时,它确实有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多