【问题标题】:Apps Script Custom Function- Internal ErrorApps 脚本自定义函数 - 内部错误
【发布时间】:2015-07-14 08:38:29
【问题描述】:

我刚刚开始使用 Apps 脚本。我打开了一个新的电子表格,访问了脚本编辑器,并编写了以下简单函数:

function DOUBLES(num) {
  return num * 2;
}

然后我保存了脚本,刷新了浏览器并在单元格中使用了我的函数:

=DOUBLES(1)

正确答案 (2) 出现在单元格中,因此我将 1 参数替换为 2。这就是奇怪的地方。更改所述参数后,我得到一个#ERROR 答案:“执行自定义函数的内部错误。”但是,当我将参数改回 1 时,错误仍然存​​在。然后,当我决定再次尝试 2 时,我得到了正确的 4 响应。尝试了多次,刷新/替换了我的电子表格,并且挠了挠头,以至于我要离开战壕了,我不确定为什么我的函数似乎只在 30-50% 的时间内工作。我已经尝试过其他单元格、其他参数编号等。我最终会得到答案还是错误似乎是一个折腾。

【问题讨论】:

  • 显示完整代码,因为您可能有全局代码
  • 已确认 - 可重现。 @ZigMandel - 显示的 3 行代码就是所需的全部代码。
  • 今天我看到了几个自定义函数问题。好像有什么东西在煤气里坏了。
  • 是的 - 我可以通过示例“自定义函数”脚本及其 INCREMENT() 函数获得相同的结果。
  • 我刚刚测试了问题中的代码,没有收到任何错误。你还能重现问题吗?

标签: javascript google-apps-script


【解决方案1】:

根据Google's documentation

自定义函数调用必须在 30 秒内返回。如果没有,单元格将显示错误:执行自定义函数的内部错误。

这确实是我的情况,经过一些代码优化后,我将错误的发生率降低到了 10%。

【讨论】:

  • 不过,num*2 没有太多需要优化的地方。
  • 确实 :) 这个答案适用于像我这样通过谷歌搜索问题中引用的错误Internal error executing the custom function 来解决 * 问题的人。
【解决方案2】:

在处理 Google Apps 脚本自定义函数时似乎存在最近引入的错误。

这显然是Issue 5222 的主题。 (我说“显然”是因为该问题报告不是很清楚。但已经足够了。)加注星标以获得更多关注并接收更新。

【讨论】:

  • 我一直遇到这个问题“执行自定义函数的内部错误。”过去 3 天。有时自定义函数有效,有时则无效。我很惊讶它没有影响到更多的人。很高兴有人报告了它,但想知道 App Script 是否已准备好用于真正的业务应用程序。 :-(
  • 感谢您的回复!想想我开始在一个新平台上闲逛,就在它开始出现问题的时候......
【解决方案3】:

如果这样可以为其他人节省一些时间来追踪此错误的原因(在 2021 年相当罕见):

我从另一个电子表格复制的工作表上的许多(但不是全部)自定义函数都返回了 Internal error executing the custom function 错误响应。

我没有尝试**改变这种行为,而且功能都非常小/快速,所以不是 30 秒超时。

最终奏效的是复制整个电子表格;副本中的功能正常工作,所以我只是将原件移至废纸篓并重命名了原件。

** 我试过:重命名函数并调用它们;添加和测试新功能;制作脚本文件的副本并删除原始文件;将工作表的副本粘贴在第一个副本上;在目标电子表格中制​​作源工作表的新副本——最终都返回了相同的Internal error executing the custom function 错误。也许复制的代码仍然以某种方式链接到绑定脚本,但无法访问?

【讨论】:

    【解决方案4】:

    我通过切换到代码编辑器并从那里运行自定义函数一次解决了该错误。 #ERROR 执行自定义函数的内部错误。消失了。

    请注意,当我从代码编辑器运行该函数时,我不必授予任何额外权限,因为该函数不需要任何权限。

    【讨论】: