我对如何实现(和调用)可安装的onOpen()
触发器存有疑问。我尝试了下面的方法,但它没有用。我做错了什么?
谢谢你的帮助!
var ss = SpreadsheetApp.getActiveSpreadsheet();
var myOnEdit = ScriptApp.newTrigger("installedOnOpen")
.forSpreadsheet(ss.getId())
.onOpen()
.create();
function installedOnOpen() {
var menuEntries = [
{name: My function menu name", functionName: "someFunction"}
];
ss.addMenu("My personalized menu", menuEntries);
}
答案 0 :(得分:1)
Hello craft Apprentice,
关于您发布的代码:
var myOnEdit = ScriptApp.newTrigger("installedOnOpen")
.forSpreadsheet(ss.getId())
.onOpen()
.create();
不是函数,永远不会被调用。如果要启动此代码,则必须将其放在函数中:
function addOnOpenTrigger(){
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("installedOnOpen").forSpreadsheet(sheet).onOpen().create();
}
然后在您的功能installedOnOpen()
上忘记了"
{name:
之后的var ss = SpreadsheetApp.getActiveSpreadsheet();
function addOnOpenTrigger(){
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("installedOnOpen").forSpreadsheet(sheet).onOpen().create();
}
function installedOnOpen() {
var menuEntries = [
{name: "My function menu name", functionName: "someFunction"}
];
ss.addMenu("My personalized menu", menuEntries);
}
来启动您的功能名称。
这里有完整的代码:
addOnOpenTrigger()
从脚本编辑器中,您必须启动函数{{1}}(当您不在时,它会询问您启动脚本的授权),现在如果您关闭并再次打开电子表格,您应该会看到新的菜单“我个性化的菜单”。
但是,如果您只想在电子表格中添加自定义菜单条目,最好的方法是使用特殊功能onOpen(),它将在电子表格的开头处启动(如果您没有在其中放置任何内容,需要特殊授权)。就像您在创建新脚本时可以获得的Google电子表格脚本模板一样
希望它对你有所帮助。
哈罗德