脚本突然停止工作-从一个表复制到另一个表



所以,我在过去的3个月里一直在运行这个脚本,没有任何问题。它只是简单地通过电子表格进行迭代,并检查某些行是否具有复制到另一个工作表的必要条件。如果是,将其复制到另一个工作表,并删除原始工作表中的该行。

function copyIfConditions() {
const ss = SpreadsheetApp.getActive();
const ssh = ss.getSheetByName("NUEVOS INGRESOS Y EXPEDIENTES EN TRAMITE");//Changed sheet name
const ash = ss.getSheetByName("CASOS ARCHIVADOS/FINALIZADOS");
const spA = ["Finalizado_Archivado", "Remitida_a_otro_juzgado_conexidad", "Remitida_UACF", "Remitida_a_otro_juzgado_por_recusacion", "Remitida_a_otro_Juzgado_por_cuestion_de_turno", "Remitida_a_otros_fueros"];
if (ssh.getLastRow() == 1) {
SpreadsheetApp.getActive().toast('No data!', 'End of script 🗃️');
return;
}
const vs = ssh.getRange(2, 1, ssh.getLastRow() - 1, ssh.getLastColumn()).getValues();
const archiveData = [];
let d = 0;//delete counter
vs.forEach((r, i) => {
if (~spA.indexOf(r[35])) {
archiveData.push(r);
ssh.deleteRow(i + 2 - d++);
}
});
ash.getRange(ash.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData);
}

现在,当试图执行它时,它抛出了这个错误,以前从未发生过?我不知道为什么它现在不工作,我想修复它。是的。

TypeError: Cannot read property 'length' of undefined
@ CopyIfArchived.gs:19

当没有数据推送到archiveData时,您收到此错误。含义:archiveData[0]不存在(未定义)。

在设置你的值之前,尝试:

if (archiveData.length) {
ash.getRange(ash.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData);
}

最新更新