gpt4 book ai didi

google-apps-script - 自定义菜单 onOpen 不显示

转载 作者:行者123 更新时间:2023-12-05 02:22:37 29 4
gpt4 key购买 nike

此代码片段在打开工作表时创建了一个自定义菜单,如预期的那样:

function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('First item', 'menuItem1')
.addToUi();
}

function menuItem1() {
SpreadsheetApp.getUi().showModelessDialog(userInterface, title)
.alert('You clicked the first menu item!');
}

添加这一行:

var CALNAME= CalendarApp.getDefaultCalendar(); 

阻止显示自定义菜单,除非我手动运行 onOpen()。我可以使用函数修复它:

function CALNAME() { 
return CalendarApp.getDefaultCalendar();
}

但我想了解为什么分配变量不起作用。

最佳答案

当您在 GAS 中启动脚本时(在本例中,打开事件触发 onOpen 函数),GAS 加载所有代码,执行主体中的代码(在本例中,var CALNAME= CalendarApp.getDefaultCalendar(); ),以及之后执行 onOpen。​​

在评估 CalendarApp.getDefaultCalendar() 时退出执行似乎是一个错误,因此永远不会执行 onOpen。​​

常见的原因是:出于安全原因,open 事件在“无特权”环境中执行 onOpen,因此您对 onOpen 的功能非常有限。您似乎无法在该环境中执行 CalendarApp.getDefaultCalendar()。

尝试从 onOpen 调用 CALNAME(),您会看到它中断了。

关于google-apps-script - 自定义菜单 onOpen 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992686/

29 4 0