使用我的自定义菜单时会发生此错误,该菜单旨在清除同一文档中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 :(得分: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();
}