2017-05-10 42 views
0

使用我设计的自定义菜单清除同一文档中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),始终如一。任何帮助将不胜感激。

谢谢

回答

0

首先,我不知道你是如何得到一个自定义菜单,除非你已经忽略你的代码为。

下面详细说明如何格式化以获得自定义菜单。其次你的功能应该与所有其他功能分开。所以一个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(); 

} 
+0

大卫,非常感谢你帮助我这个。我的菜单正在运行,所有的运行都很顺利。 –

+0

谢谢@GiulianoIaboni,很高兴我能帮上忙。如果你可以请标记答案是正确的,这将有助于未来的围观者:) – David

相关问题