编辑感谢您的帮助,我已按照以下方式更新了脚本,但它仍然无法从附加菜单创建子菜单。
// Hide empty rows in PRINT sheet
function onOpen(e) {
var menu = SpreadsheetApp.getUi().createMenu('Print Ready');
menu.addItem('Print Ready', 'PRINTREADY');
menu.addToUi();
}
function PRINTREADY(){
var shname='PRINT';//<<<<<<<<<<<<<<<change to appropriate sheet name
var rw1=4, rw2=258;
var s, nrws, data, i;
nrws=rw2-rw1+1;
s=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shname);
data=s.getRange(rw1, 1, nrws, s.getLastColumn()).getValues();
s.showRows(rw1, nrws);
for (i in data) if (data[i].every(function(x) {return x=='';})) s.hideRows(1*i+rw1);
}
// Sort PANTRY LIST A-Z
var sh = SpreadsheetApp.getActiveSheet();
if( sh.getName() == "PANTRY LIST" ) {
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 1) {
var range = sh.getRange("PANTRY LIST!A3:Z");
range.sort({column: 1});
}
}
我正在尝试为我编写的电子表格中的某些餐馆菜单部署工作表插件。对于我需要包含脚本的一些功能,它们本身非常简单:
脚本1: HideEmptyRows - 此脚本隐藏空行以使配方准备好打印,它应仅在带有工作表名称PRINT的配方文档上运行。
脚本2: SortList - 此脚本只需对打开的表单A-Z进行排序,每15分钟一次,它只在带有工作表名称PANTRY LIST的Pantry List文档上运行。
它们作为脚本单独运行,但是当我将它们组合成工作表时,插件脚本1不会生成菜单,并且我从脚本2中获得Range Not Found错误。
脚本1
function onOpen(e) {
var menu = SpreadsheetApp.getUi().createMenu('Print Ready')
menu.addItem('Make my recipe ready to print', 'PRINTREADY')
.addToUi();
}
function PRINTREADY(){
var shname='PRINT';//<<<<<<<<<<<<<<<change to appropriate sheet name
var rw1=4, rw2=258;
var s, nrws, data, i;
nrws=rw2-rw1+1;
s=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shname);
data=s.getRange(rw1, 1, nrws, s.getLastColumn()).getValues();
s.showRows(rw1, nrws);
for (i in data) if (data[i].every(function(x) {return x=='';})) s.hideRows(1*i+rw1);
}
脚本2
function onOpen(){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 1) {
var range = sh.getRange("PANTRY LIST!A3:Z");
range.sort({column: 1});
}
}
有谁知道如何将它们组合成一个我可以作为插件部署的脚本?
由于