Google apps script 谷歌电子表格-自定义菜单赢得';无法加载,因为onOpen赢了';t火

Google apps script 谷歌电子表格-自定义菜单赢得';无法加载,因为onOpen赢了';t火,google-apps-script,google-sheets,google-apps,Google Apps Script,Google Sheets,Google Apps,我正在做“教程”中规定的所有事情。使用onOpen事件处理程序修改菜单 我已经在“脚本库”中公开提供了这个“文本到列”脚本,但我担心,当自定义菜单需要很长时间才能弹出时,下载的用户可能会感到困惑 第一次加载脚本被证明是一件痛苦的事情。大多数情况下,onOpen触发器都会完全丢失。似乎未正确设置触发器,因为手动重置onOpen触发器将修复此问题 对于个人使用,我认为这是一个小麻烦,但对于共享脚本,它成为一个支持问题。 注意:每次后续加载持续大约7秒才会出现,这是正常的,但远远不够理想 这是onOp

我正在做“教程”中规定的所有事情。使用onOpen事件处理程序修改菜单

我已经在“脚本库”中公开提供了这个“文本到列”脚本,但我担心,当自定义菜单需要很长时间才能弹出时,下载的用户可能会感到困惑

第一次加载脚本被证明是一件痛苦的事情。大多数情况下,onOpen触发器都会完全丢失。似乎未正确设置触发器,因为手动重置onOpen触发器将修复此问题

对于个人使用,我认为这是一个小麻烦,但对于共享脚本,它成为一个支持问题。

注意:每次后续加载持续大约7秒才会出现,这是正常的,但远远不够理想

这是onOpen处理程序:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({ name:"Text to columns", functionName:"textToColumns" });
  menuEntries.push({ name:"Text to columns (custom separator)", functionName:"textToColumnsCustom" });
  menuEntries.push(null);
  menuEntries.push({ name:"Columns to Text", functionName:"columnsToText" });
  menuEntries.push({ name:"Columns to Text (custom separator)", functionName:"columnsToTextCustom" });
  ss.addMenu("Advanced", menuEntries);
}

注意:这是在一个只有一个用户的新(即空)电子表格上测试的。

我不确定,但用户必须登录,我想,如果没有,我已经有一次这个问题,并通过制作两个或多个触发器解决了。所有这些触发器都处于打开状态且功能相同,但是,请尝试使internet速度超过30KB/s,以确保问题是源于代码,而不是源于您的设备

如何在onOpen中创建项目很少或没有的菜单,然后使用另一个功能使用其他项目更新菜单?有趣,值得一试。@Mogsdad我读了一些书,这可能会使问题更加复杂,因为一天内调用时间触发器的次数有一个配额,这是一个公开共享的脚本。初始加载问题似乎是由脚本未能触发onOpen引起的。通过手动向脚本添加onOpen触发器,可以使其无法工作。至于随后的加载时间,7秒似乎是一致的标准。另一个选择是放弃菜单,而只是将可点击的按钮放在工作表中。看见这可能不适合您的特定应用程序,但一般来说,它会显示得更快。将此功能作为菜单项提供有点重要。该脚本作为“文本到列”功能的多边形填充实现,许多从Excel迁移的用户可能依赖该功能。不管怎样,我都很感激你的建议。