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);
}
现在,大约一个小时前,这里有人好心地帮助我解决了我在使用 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);
}