有人能帮我吗?我需要根据复选框将行移动到另一张工作表。我找到了代码,它可以工作,但它将行移动到dest工作表的和。
function onEdit(e){
var src = e.source.getActiveSheet();
var r = e.range;
if (src.getName() != "calculations" || r.columnStart != 13 || r.rowStart == 1) return;
var dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("orders");
src.getRange(r.rowStart,1,1,12).moveTo(dest.getRange(dest.getLastRow()+1,2,1,13));
src.deleteRow(r.rowStart);
}
我试图确定目的表的最后一行,但在代码中添加后,它不起的作用
function onEdit(e){
var src = e.source.getActiveSheet();
var r = e.range;
if (src.getName() != "calculations" || r.columnStart != 13 || r.rowStart == 1) return;
var dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("orders");
var rng = dest.getRange("B1:M").getValues();
var lrIndex;
for(var i = rng.length-1;i>=0;i--){
lrIndex=i;
if(!rng[i].every(function(c){ return c == ""; })){
break;
}
var lr = lrIndex + 1;
}
src.getRange(r.rowStart,1,1,12).moveTo(dest.getRange(dest.lr,1,1,12));
src.deleteRow(r.rowStart);
}
有人能帮我吗?
行中可能有错误:
src.getRange(r.rowStart,1,1,12).moveTo(dest.getRange(dest.lr,1,1,12));
既然lr
是一个数字,也许应该有:
src.getRange(r.rowStart,1,1,12).moveTo(dest.getRange(lr,1,1,12));
只是lr
而不是dest.lr
。
但我没有试着运行脚本,这只是一个猜测。