Google Apps 脚本 - 行未在脚本后删除

Google Apps Script - row not deleting after script

现在,大约一个小时前,这里有人好心地帮助我解决了我在使用 GApps 脚本时遇到的问题,现在,在尝试 fix/add 一些东西时,呃,我认为它不再起作用了,在至少在某个部分。 所以,让我解释一下,这是到目前为止的代码。 它应该检查几种情况,如果条件为真,它将这些行从一个 sheet 复制到另一个,这非常有效,但是,( 我认为这曾经有效,所以 idk为什么它现在不起作用) 已复制的行之后没有被删除,这是为什么?

  var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NUEVOS INGRESOS Y EXPEDIENTES EN TRAMITE");
  var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CASOS ARCHIVADOS/FINALIZADOS");
  if (sourceSheet.getLastRow()==1){
    SpreadsheetApp.getActive().toast('No data!', 'End of script ️')
    return
  }
  var data = sourceSheet.getRange(2,1,sourceSheet.getLastRow()-1,sourceSheet.getLastColumn()).getValues()
  var archiveData = []
  var lines = []
  var line = 1
  var col = 31 // AF
  try {
    data.forEach(function (row) {
      if (row[col]=="Finalizado_Archivado") {
        archiveData.push(row)
        lines.push(line)
      }
      else if(row[col]=="Remitida_a_otro_juzgado_conexidad"){
        archiveData.push(row)
        lines.push(line)
      }
      else if(row[col]=="Remitida_UACF"){
        archiveData.push(row)
        lines.push(line)
      }
      else if(row[col]=="Remitida_a_otro_juzgado_por_recusacion"){
        archiveData.push(row)
        lines.push(line)
      }
      else if(row[col]=="Remitida_a_otro_Juzgado_por_cuestion_de_turno"){
        archiveData.push(row)
        lines.push(line)
      }
      else if(row[col]=="Remitida_a_otros_fueros"){
        archiveData.push(row)
        lines.push(line)
      }     
    })
    archive.getRange(archive.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData)
    lines.reverse().forEach(x => sourceSheet.deleteRow(x));
    SpreadsheetApp.getActive().toast('Rows '+lines.flat()+' hab been archived !', 'End of script ️')
  } catch (e) {
    SpreadsheetApp.getActive().toast('No data to be archived!', 'End of script ️')
  }
} 

// || "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"

试试这个:

function elfunko() {
  const ss = SpreadsheetApp.getActive();
  const ssh = ss.getSheetByName("Sheet1");//Changed sheet name
  const ash = ss.getSheetByName("Sheet2");
  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[31])) {
      archiveData.push(r);
      ssh.deleteRow(i + 2 - d++);
    }
  });
  ash.getRange(ash.getLastRow() + 1, 1, archiveData.length, archiveData[0].length).setValues(archiveData);
}