【发布时间】:2021-03-17 16:50:45
【问题描述】:
我正在为将数据发送到服务器的 Google 表格编写脚本。目标 Google 表格文档有几张表格。每张纸都必须有自己的菜单。因此,我搜索了任何在活动工作表更改时触发的触发器,但我找不到。
如何获得工作表切换事件?
谢谢你:)
更新。 我有这个功能:
function onOpen() {
var sheet = SpreadsheetApp.getActiveSheet();
var menuEntries = [
{ name: "Upload " + sheet.getName() + " to Server", functionName: "ExportSheet" },
];
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.addMenu("Export JSON", menuEntries);
}
但我想将 onOpen 替换为将由激活工作表时触发的某些事件调用的函数。
更新 2。
const ss=SpreadsheetApp.getActive();
function onOpen(e) {
CreateMenuOptions(e);
}
function onSelectionChange(e) {
CreateMenuOptions(e);
}
function CreateMenuOptions(e){
var sheetName = e.range.getSheet().getName();
var menuEntries = [
{ name: "Upload " + sheetName + " to Server", functionName: "ExportSheet" },
];
ss.updateMenu("Export to JSON", menuEntries);
ss.toast(sheetName);
console.log(sheetName);
}
我根据@Cooper 的回答应用更改。现在,onOpen 仍然可以正常工作,但 onSelectionChange 除非记录工作表的名称,否则不会做任何事情。菜单未更新,吐司未显示。 :(
【问题讨论】:
-
当您说每张工作表都必须有自己的菜单时,您指的是电子表格还是工作表。
-
我说的是电子表格菜单。但是对于不同的活动工作表,菜单应该是不同的。
标签: google-apps-script triggers