我目前正在开发一个预算附加组件,该组件可使用户在输入交易金额时自动更新其每月交易总额,无论是收入还是支出。加载项使用可安装的触发器onMyEdit(e)
更新每月交易金额。例如,如果用户在1月份输入单元格A1花费了5美元,则1月份的费用单元格将使用=SUM(A1)
更新该单元格。该脚本具有一个设置菜单,用户可以键入该菜单,以便知道电子表格的边界。该脚本维护用户通过使用documentProperty进行管理而输入的设置。在文档中,我发现简单触发器无法在加载项上使用,因为它们没有授权,而且我也不知道可安装触发器是否也可以使用。
我可以发布使用此可安装触发器onMyEdit(e)
的加载项吗?我是否应该使用“在此文档上启用”复选框更新设置菜单,以便脚本知道要启用哪个电子表格,或者放弃使用onEdit加载项的整个想法?
这是我的第一个堆栈溢出帖子,如果您需要更多说明,请告诉我。我对使用Google Apps脚本能做什么感到非常困惑。感谢您关注我的问题。
答案 0 :(得分:0)
如附加组件触发器文档中所述,您可以在附加组件中同时使用简单和onEdit
可安装的触发器-根据您希望使用的触发器类型的不同,限制会有所不同
重要的是要了解针对特定附件的情况:
附加组件可以通过Apps脚本脚本服务以编程方式创建和修改可安装的触发器。无法手动创建附加的可安装触发器。与简单触发器不同,可安装触发器可以使用需要授权的服务。
请参阅: Installable triggers in add-ons
如何为附加组件创建可安装的触发器,以及脚本如何知道用户正在使用的工作表?
流程如下:
onOpen
触发器,该触发器将为已打开的特定电子表格创建自定义菜单onEdit
触发示例:
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Add a trigger', 'addTriggers')
.addToUi();
}
function addTriggers() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('doItOnEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function doItOnEdit(){
console.log("An edit has taken place");
}