2016-12-30 68 views
3

SpreadsheetApp.AddMenu(名称,条目数组)在电子表格的顶部栏中生成一个新菜单。或者,getUI.createMenu会生成一组项目。两者都很好,不知道哪个更好。如何禁用SpreadsheetApp.addMenu项目

是否可以根据活动工作表的内容来禁用和启用某些菜单项?

有什么方法可以告诉特定工作表何时变为活动状态?如果没有,我可以使用onChange或onEdit事件,因为只有在用户更改为特定工作表时,才需要启用我想禁用的菜单项。

回答

3

脚本可以通过调用getActiveSheet来查找哪个工作表当前处于活动状态。但是,当用户从一张纸切换到另一张纸时,不会触发任何触发:这不被视为“编辑”或“更改”。按照问题中提出的计划B进行:在编辑/更改时检测活动工作表。

至于两种方法:.addMenu语法是旧版Google表格中唯一可用的语法。当添加getUI().createMenu()时,保留旧方法的兼容性。旧的语法比较简单,但新方法有更多的选项,例如添加分隔符和子菜单。请参阅What is the difference between creating a menu with .getUI().createMenu() and .addMenu()?

无法使自定义菜单项出现禁用状态。相反,当用户尝试调用当前上下文中不可用的选项时,您可能想要显示一个不太烦人的消息,例如toast来通知他们。