我遇到了一个奇怪的问题。每当我打开一个新文件,我的Google工作表外接程序的自定义函数就不会被识别(它显示#NAME?;未知函数)。
在我的加载项,我有一些代码,创建加载项下拉菜单在打开。在菜单中,用户可以选择显示侧边栏、刷新所有工作表、查看文档等。当他们单击菜单栏中的任何选项时,自定义函数立即被识别并正常运行,不会出错。
我认为Google只在用户启动我的外接程序时才会识别我的自定义函数(点击我的“外接程序”下拉菜单中的任何内容)。是否有任何方法可以让Google在打开时识别我的自定义功能,而不必单击菜单栏中的任何内容。
感谢你的帮助
发布于 2022-08-10 16:46:58
应在每个电子表格上激活加载项,然后才能在其上使用.这不能自动完成,所以您应该告诉您的用户,为了能够使用加载项自定义函数,他们应该激活加载项。
为了避免有#的名字?错误,可以使用IFERROR,即
=IFERROR(myFunction(),"Please activate the add-on")资源
发布于 2022-08-10 17:11:05
在您的应用程序脚本中添加一个onOpen(e)触发器应该允许您在用户身份验证之前预先加载自定义菜单选项。
var menu = SpreadsheetApp.getUi().createAddonMenu();
if (e && e.authMode == ScriptApp.AuthMode.NONE){
// Add a normal menu item (works in all authorization modes).
menu.addItem('Start workflow', 'startWorkflow');如果安装了外接程序,但没有启用,您的onOpen函数将使用AuthMode.NONE运行,这可能就是应用程序被用户安全设置阻塞的原因。请参考编辑器附加授权文档的Apps脚本来确认您的auth状态。
https://stackoverflow.com/questions/73308839
复制相似问题