菜单未在电子表格中创建onOpen

时间:2015-02-18 08:16:18

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

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

function onOpen(){

var menu = [

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

其中ss在外面声明。

2 个答案:

答案 0 :(得分:2)

我提供了一个关于我的代码的完整示例:

新版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');
}

答案 1 :(得分:0)

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