【问题标题】:Menu not creating in spreadsheet onOpen菜单未在电子表格中创建 onOpen
【发布时间】:2015-02-18 08:16:17
【问题描述】:

在电子表格中创建菜单时遇到问题。相同的代码在另一个脚本中工作。我不知道做错了什么。有人可以解决它。当我每次手动运行该功能时它就可以工作。

函数 onOpen() {

var menu = [

{name: "Authorize", functionName: "authorize"},
{name: "Test", functionName: "testing"},
{name: "Notify", functionName: "notify"},
{name: "Clear", functionName: "clear"}
];  
ss.addMenu("Testing ", menu);  
}

ss 是在外面声明的。

【问题讨论】:

  • 它在图书馆里吗?你能分享整个 onOpen() 代码吗?尝试在资源 -> 触发器中手动分配它。
  • @Kriggs 是的,我尝试手动分配它并且它有效。

标签: google-apps-script google-sheets spreadsheet


【解决方案1】:

我给出一个关于我的代码的完整示例:

新的 Google 电子表格

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

    function menu1() {
      SpreadsheetApp.getUi()
         .alert('clicked');
    }

旧版 Google 电子表格

 function onOpen() {
      var ss = SpreadsheetApp.getActive();
      var items = [
        {name: 'First', functionName: 'menu1'},
      ];
      ss.addMenu('My Menu', items);
    }

function menu1() {
  Browser.msgBox('clicked');
}

【讨论】:

  • 谢谢汉恩。该代码有效。代码中的问题是因为我使用的是旧版本的代码?
【解决方案2】:

电子表格中的菜单可能需要几秒钟才会出现。但是,如果您没有看到它们,则可能在 onOpen() 方法之外的代码中存在一些拼写错误/错误。

【讨论】:

  • 好的,阿米特。感谢您的回复。我会检查完整的代码。
猜你喜欢
  • 2023-03-27
  • 2018-01-30
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
相关资源
最近更新 更多