我正在使用包含多张工作表的电子表格,我希望我的自定义工具栏菜单会根据当时打开的工作表动态更改。
当活动电子表格更改时是否可以调用事件?或者在我在工作表之间切换时更新菜单的其他方法。
答案 0 :(得分:2)
使用这个小代码,可以根据活动工作表创建动态菜单。
var ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
ss.addMenu("Extra",
[{name: "Sheet A", functionName: "A"},
{name: "Sheet B", functionName: "B"},
{name: "Sheet C", functionName: "C"}
]);
}
function onEdit() {
var activeSheet = ss.getActiveSheet().getName(), nMenu;
ss.removeMenu("Extra");
switch (activeSheet) {
case "A":
nMenu = [{name: "Sheet B", functionName: "B"},
{name: "Sheet C", functionName: "C"}];
break;
case "B":
nMenu = [{name: "Sheet A", functionName: "A"},
{name: "Sheet C", functionName: "C"}];
break;
case "C":
nMenu = [{name: "Sheet A", functionName: "A"},
{name: "Sheet B", functionName: "B"}];
break;
}
ss.addMenu("Extra", nMenu);
}
我为您创建了一个示例文件:Dynamic Menu
当编辑活动工作表中的任何单元格时,菜单仅 更改。