我将在几个用户之间分发一个带有 onOpen 菜单的电子表格。我想将菜单定义和功能保留在库中,所以如果我添加一些菜单选项或更新一些功能,使用该电子表格的每个人都会自动更新。
到目前为止,在电子表格脚本上我只有这个简单的代码:
function onOpen() {
myLib.loadMenu();
}
菜单可以毫无问题地加载到电子表格上,但是无论我如何命名菜单上的调用和实际功能(有或没有 myLib。)在使用选项时,我总是收到错误“找不到脚本函数 doSomething”从那个菜单。
关于我应该如何命名菜单中的函数调用和库中的实际函数的任何想法,以使这种方法起作用。
谢谢,福斯托
EDIT-1:让我提供更多细节和示例代码
我的目标是能够从库中向该电子表格菜单添加更多选项,而无需更新每个用户的电子表格。
这是所有包含在电子表格脚本中的示例代码,尚未使用任何库,它可以正常工作
function onOpen() {
testMenu();
}
function testMenu() {
SpreadsheetApp.getActiveSpreadsheet().addMenu(
'Testing', [
{ name: 'Do Something #1', functionName: 'someFunction1' },
null,
{ name: 'Do Something #2', functionName: 'someFunction2' } ]);
}
function someFunction1() {
SpreadsheetApp.getActiveSheet().getRange("A1").setValue("Hello from someFunction1");
}
function someFunction2() {
SpreadsheetApp.getActiveSheet().getRange("A2").setValue("Bye from someFunction2");
}
我想要做的是获得相同的功能,但在电子表格脚本和库之间拆分代码,如下所示
在电子表格脚本上
function onOpen() {
xsLib.testMenu();
}
在图书馆
function testMenu() {
SpreadsheetApp.getActiveSpreadsheet().addMenu(
'Testing', [
{ name: 'Do Something #1', functionName: 'someFunction1' },
null,
{ name: 'Do Something #2', functionName: 'someFunction2' } ]);
}
function someFunction1() {
SpreadsheetApp.getActiveSheet().getRange("A1").setValue("Hello from someFunction1");
}
function someFunction2() {
SpreadsheetApp.getActiveSheet().getRange("A2").setValue("Bye from someFunction2");
}
在这种拆分方法中,从库调用构建的菜单在电子表格上正确显示,但是当使用该测试菜单中的选项时,我收到一条消息错误,例如:“找不到脚本函数 someFunction1”