我应该如何解决此自定义菜单错误



使用我的自定义菜单时发生此错误,该菜单旨在清除同一文档中 7 张工作表中的单元格范围。代码如下:

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menubuttons = [{name: "Clear Dock 1", functionName: "clearRange1()"},
                   {name: "Clear Dock 2", functionName: "clearRange2()"},
                   {name: "Clear Dock 3", functionName: "clearRange3()"},
                   {name: "Clear Dock 4", functionName: "clearRange4()"},
                   {name: "Clear Dock 5", functionName: "clearRange5()"},
                   {name: "Clear Dock 6", functionName: "clearRange6()"},
                   {name: "Clear Dock 7", functionName: "clearRange7()"}
              ];


function clearRange1() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 1');
  sheet.getRange('b2:j49').clearContent();
}

function clearRange2() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 2');
  sheet.getRange('b2:j49').clearContent();
}
function clearRange3() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 3');
  sheet.getRange('b2:j49').clearContent();
}
function clearRange4() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 4');
  sheet.getRange('b2:j49').clearContent();
}
function clearRange5() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 5');
  sheet.getRange('b2:j49').clearContent();
}
function clearRange6() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 6');
  sheet.getRange('b2:j49').clearContent();
}
function clearRange7() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Dock 7');
  sheet.getRange('b2:j49').clearContent();
}}

我对编码很陌生,我渴望学习,因为我正在为我的工作场所制定发货/收货时间表。我的代码可能包含很多错误,因此任何更正都会:)很棒。

每当我按下自定义菜单上的按钮时,问题仍然存在,因为它给我错误:">找不到脚本函数:clearRange1(( 有关更多信息,请参阅 https://developers.google.com/apps-script/reference/base/menu#addItem(String,String("。任何帮助将不胜感激。

谢谢

首先,我不知道您是如何获得自定义菜单的,除非您省略了代码。

下面详细介绍了您需要如何格式化才能获得自定义菜单。其次,您的函数应该与所有其他函数分开。所以一个onOpen((函数将关闭},然后你将启动另一个独立的函数。 请参阅下面的示例,您可以扩展:)

function onOpen() {
var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Clear Dock 1', 'clearRange1')
      .addItem('Clear Dock 2', 'clearRange2')
      .addItem('Clear Dock 3', 'clearRange3')
      .addItem('Clear Dock 4', 'clearRange4')
      .addItem('Clear Dock 5', 'clearRange5')
      .addItem('Clear Dock 6', 'clearRange6')
      .addItem('Clear Dock 7', 'clearRange7')
      .addToUi();
}
    //you can put this outside your functions if you want it to work for all of them
    var ss = SpreadsheetApp.getActive();
function clearRange1() {
var sheet = ss.getSheetByName('Sheet3');
sheet.getRange('B2:J49').clearContent();
}

最新更新