在不满足以下条件时,如何消除异常错误。
当条件满足时,我将一行从一个选项卡移动到另一个选项卡的脚本可以正常工作,但当条件不满足时,会出现以下错误"异常:范围中的行数必须至少为1。CIO2365@代码.gs:6〃;。我已经将脚本设置为触发器,所以如果可能的话,我希望消除错误。
function CIO2CIO(){
const sh = SpreadsheetApp.getActive();
const ss = sh.getSheetByName("Response Landing");
const outSheet = sh.getSheetByName('CIO to CIO');
let data = ss.getRange(2,1,ss.getLastRow()-1,21).getValues();
let out = [];
for (let i = 0; i < data.length; i++){
if (data[i][2] == 'CIO to CIO'){
out.push(data[i]);
ss.deleteRow(i+2);
data.splice(i,1);
i--;
}else{return}
}
outSheet.getRange(outSheet.getLastRow()+1,1,out.length,21).setValues(out);
}
当我看到您的脚本和错误消息时,我认为错误的原因可能是ss.getLastRow()
小于1。如果我的理解是正确的,那么下面的修改如何?
发件人:
let data = ss.getRange(2,1,ss.getLastRow()-1,21).getValues();
收件人:
const lastRow = ss.getLastRow();
if (lastRow <= 1) return;
let data = ss.getRange(2, 1, lastRow - 1, 21).getValues();