根据复选框将行移动到其他工作表的最后一行



有人能帮我吗?我需要根据复选框将行移动到另一张工作表。我找到了代码,它可以工作,但它将行移动到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

但我没有试着运行脚本,这只是一个猜测。

最新更新