gpt4 book ai didi

google-apps-script - 来自库的电子表格打开菜单

转载 作者:行者123 更新时间:2023-12-04 15:24:54 25 4
gpt4 key购买 nike

我将在多个用户之间分发带有 onOpen 菜单的电子表格。我想将菜单定义和功能保留在库中,因此如果我添加一些菜单选项或更新一些功能,使用该电子表格的每个人都会自动更新。

到目前为止,在电子表格脚本中,我只有这个简单的代码:

function onOpen() {
myLib.loadMenu();
}

菜单在电子表格上加载没有问题,但是无论我如何命名菜单上的调用和实际函数(有或没有 myLib。)我总是在使用选项时收到错误“找不到脚本函数 doSomething”从那个菜单。

关于我应该如何命名菜单中的函数调用和库中的实际函数的任何想法,以使这种方法起作用。

谢谢,福斯托

编辑-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”

最佳答案

最后我检查了你不能给脚本中不包含的触发器函数。您最有可能需要做的是在脚本中为您的 scpreadsheet 创建一个包装函数。像这样的东西:

function doSomething() {
myLib.doSomething();
}

编辑:
您正在寻找的功能目前不可用。为了达到预期的效果,您需要指定您要调用的函数属于该库并且是不允许的。

有一个功能要求:

http://code.google.com/p/google-apps-script-issues/issues/detail?id=799

如果您对拥有此功能感兴趣,请去投票这个问题以提高其优先级。

最好的事物,

安东

关于google-apps-script - 来自库的电子表格打开菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com