Ich habe den seltsamsten Fehler beim Versuch gefunden, Zeilen zu löschen, die mit Google Script einem bestimmten Wert entsprechen.Löschen von Zeilen in Google Tabellen mit Google Apps Script
Hier ist mein Code:
function myFunction() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getSheetByName("file.csv");
var values = sheet.getRange("N2:N").getValues();
var row_del = new Array();
for(var i=0;i<values.length;i++)
{
if(values[i] == 'del'){
row_del.push(i+2); // This line was added for debugging purposes.
// sheet.deleteRow(i+2) was the line that was in this condition
// (i+2) is used because row 1 has headers and the range starts from 0.
}
}
// Logger.log(row_del);
// GmailApp.sendEmail("my_email_address", "subject", row_del)
for (var i = 0; i < row_del.length; i++)
{
sheet.deleteRow(row_del[i]);
}
}
Der Code, den ich geschrieben habe, nimmt die Zeilennummern auf, die gelöscht werden sollen, aber nicht alle diese Zeilen in meinem ersten Versuch gelöscht. Ich sollte mein Skript mehrmals ausführen, damit diese Zeilen gelöscht werden.
Wenn mein Code einen Fehler hat, sollte es angezeigt werden und wenn die Logik falsch ist, müssen falsche Zeilen gelöscht werden. Ich treffe keines dieser Szenarien und ich sollte diese Funktion einfach mehrmals ausführen.
Gibt es etwas, das ich hier vermisse?
von unten Löschen nicht löschen Versuchen up: 'for (var i = row_del.length - 1; i> = 0; i--) { sheet.deleteRow (row_del [i]); } ' –
Das hat funktioniert .. Vielen Dank Suppe. Kannst du mir bitte sagen, warum mein Code nicht funktioniert hat? Ist deine Logik nicht die gleiche wie meine? –
können Sie sheet.deleteRows (1, 2); sowie alle Zeilen gleichzeitig löschen –