Google Sheets插件自定义函数出现#NAME错误,点击菜单后才可用,是否正常?
问题解答
这属于预期行为,根源在于Google Apps Script的权限机制:
- 插件刚安装到新表格时,脚本还没获得运行所需的授权。作为单元格公式使用的自定义函数(比如
helloWorld()),在未授权状态下无法被执行,所以返回#NAME?错误——这个错误本质是脚本权限不足导致无法被识别调用。 - 而通过菜单触发的函数(比如
helloWorldBox())会触发Google的授权流程,当你点击菜单选项并完成授权后,整个插件的脚本都获得了对应的运行权限,此时再在单元格中调用helloWorld()就能正常执行了。
补充说明:这种情况只会在新安装插件的表格首次使用时出现,后续再次打开该表格,自定义函数应该能直接运行,无需再次点击菜单触发授权。
你的插件代码
function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('My Custom Menu') .addItem('Activate Plugin', 'helloWorldBox') .addToUi(); } function helloWorldBox() { Browser.msgBox("Hello World"); } function helloWorld() { return "hello world"; }
内容的提问来源于stack exchange,提问作者DD.
相关产品推荐
相关产品推荐

