Das Kopieren des Datenskripts funktioniert nicht mehr
Ich habe ein Skript in meinem Google Sheet verwendet, das ich hier gefunden habe:
Kopieren Sie Daten in einem Google App-Skript von einem Blatt auf ein anderes und fügen Sie eine Zeile hinzu, ein kleines Problem
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Copy");
var pasteSheet = ss.getSheetByName("Paste");
// get source range
var source = copySheet.getRange(2,2,12,2);
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
// copy values to destination range
source.copyTo(destination);
// clear source values
source.clearContent();
}
Wenn ich es jetzt ausführe, wird mir ein Fehler angezeigt:
Die Koordinaten des Zielbereichs liegen außerhalb der Abmessungen des Blattes.
was vorher nicht auftauchte. Hat jemand eine Idee, warum es das tut?
Antworten
Problem:
Der Fehler ist in dieser Zeile:
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
pasteSheet.getLastRow()
Gibt eine Zeilennummer zurück, die sich ganz unten auf Ihrem Blatt befindet. Dann betrachten Sie den Zeilenbereich, 12
aber der pasteSheet
hat keine 12
Zeilen nach der letzten Zeile mit Inhalt.
Lösungen:
Fügen Sie weitere Zeilen hinzu in pasteSheet
:

oder Sie können insertRowsAfter verwenden :
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
Code-Auszug:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("Copy");
var pasteSheet = ss.getSheetByName("Paste");
// get source range
var source = copySheet.getRange(2,2,12,2);
// insert rows to make sure you have enough space
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
// get destination range
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
// copy values to destination range
source.copyTo(destination);
// clear source values
source.clearContent();
}