【发布时间】:2019-04-02 02:16:00
【问题描述】:
我正在构建一个附加组件。我注意到我可以有多个 html 文件。我也可以有多个代码文件,即不仅仅是Code.gs吗?
如果是这样,我如何使它们被加载?如果不能,Sheets 怎么知道 Code.gs 中定义的函数是否可以在公式中使用?
稍后
因此有人建议,看到脚本编辑器允许您创建额外的 gs 文件,只需在插件中的另一个脚本文件中使用自定义函数就足够了。但是,我在这方面并没有取得很大的成功。
所以除了我的 Code.gs 之外,我还有 Medical.gs,其中包含以下内容:
/**
* Gargling function for digital sore throat
*
* @param {object} input The thing to gargle
* @return the gargled parameter
* @customfunction
*/
function GARGLE(input) {
console.log("GARGLE");
return "GARGLE";
}
即使使用 JSDoc 标头,当我从脚本编辑器的“运行”菜单中选择“作为附加组件测试”并运行准备好的测试电子表格时,自定义函数也是不可见的。在电子表格中,我可以随心所欲地执行=GARGLE(),但我仍然得到标准的#NAME? 错误。
稍后
所以我将一个类似的自定义函数放入一个新的独立脚本项目的 Code.gs 中。当作为附加组件进行测试时,目标电子表格甚至看不到 this 之一。这里有点疯狂。
【问题讨论】:
-
您的电子表格文件项目中可以有任意数量的脚本文件。您只需转到代码编辑器,文件 -> 新建 -> 脚本文件。每个函数都由一个名称定义。您不能拥有多个具有相同名称的函数。然后您可以按名称(...)执行一个函数,其中 ... 可能是参数。您可以通过输入 =name(...) 在电子表格单元格中执行与自定义函数相同的函数。对于 Web 应用程序也是如此,项目知道多个脚本页面中所有函数的名称。
-
目前所有 Apps 脚本文件共享同一个命名空间。
-
你的自定义函数对我来说很好用
-
@beano(孩子们很喜欢那个漫画) 是的,该功能在某些情况下可以正常工作,但在其他情况下则不行。如果我有一个带有单个 Code.gs 文件和该函数的插件,然后从脚本编辑器将其作为插件进行测试,则 Google 表格不会看到它。也许我应该重新启动我的笔记本电脑......当事情变得异常时通常的反应。
-
@TheWizEd 我宁愿开发一个独立而不是绑定。
标签: google-apps-script google-sheets custom-function