我遇到了同样的问题。我在这里记录,什么对我有用。
要创建一个新的自定义函数,我执行了以下操作:
- 在电子表格中:菜单 -> 工具 -> 脚本编辑器
- 在脚本编辑器中编写函数
- 在电子表格中:菜单 -> 工具 -> 导入 -> 单击自定义函数名称旁边的“添加函数”。
- 在电子表格中:在一个单元格中,我做了
=CustomFunctionName()
这行得通。
现在,当我想在另一个电子表格中重复使用相同的内容时,有两种方法可以做到这一点。
Make Copy
编写自定义函数的工作表。
- 通过编写特定于特定工作表的自定义函数,创建自定义函数库并在其他工作表中重用它们。
#1 复制写入自定义函数的工作表。
这样,整个自定义功能代码就会被复制。因此,如果需要在自定义函数中进行任何更改,则必须在所有复制的文件中进行更改。此外,一旦复制了工作表,自定义功能就不会简单地工作。我不得不删除单元格并再次重新输入函数名称,以使它们正常工作。
#2 通过编写特定于特定工作表的自定义函数,创建自定义函数库并在其他工作表中重用它们。
这更好,因为核心逻辑将留在一个地方。将为每个使用自定义函数的工作表编写包装函数。
要创建库:
- 在脚本编辑器中编写函数
- 单击“部署-> 新部署”
- “选择类型 -> 库”
- 如果您愿意,请提供描述并单击“部署”和“完成”
- 单击左侧菜单上的“项目设置”并复制“脚本 ID”(以使用库)
要使用库:
- 转到要在其中使用库的电子表格。
- 菜单 -> 工具 -> 脚本编辑器
- 在脚本编辑器中:单击
+
左侧库部分旁边的按钮。
- 输入“脚本 ID”并单击“查找”。
- 您将看到脚本详细信息。然后单击“添加”按钮。
- 记住“标识符”字段值。使用它,可以访问库的功能。
- 现在,在脚本编辑器中,您可以使用标识符名称调用库函数。请参阅下面的示例。
图书馆代码:
function SheetName() {
return SpreadsheetApp.getActiveSpreadsheet().getName();
}
function SayHello(name) {
return 'Hello ${name}';
}
假设,在将这个库包含到电子表格中时,我将标识符输入为utility
. 所以,在脚本编辑器中,我会这样写:
function SheetName() {
return utility.SheetName();
}
如何更新库并在电子表格中使用更新后的代码?
要更新库:
- 在库项目中进行更改。
- 单击“部署 -> 管理部署”。
- 从左侧选择正确的部署。
- 点击编辑按钮(左上角)。
- 在“版本”输入中选择“新版本”。
- 单击“部署”并记下显示的新版本号。
要使用更新的库:
- 转到已在其中使用库的电子表格并在其中打开脚本编辑器。
- 如果该工作表的脚本编辑器已经打开,请重新加载页面一次。
- 单击
Library
部分(左侧)中的库名称。
- 在输入中选择最新版本号并
Version
单击“保存”。
现在,您可以像以前一样调用新函数,现有函数将以新方式工作(如果现有函数有任何更改)。