Skrypt kopiowania danych już nie działa
Używałem skryptu w moim arkuszu Google, który znalazłem tutaj:
skopiuj dane z jednego arkusza do drugiego w skrypcie aplikacji Google i dołącz wiersz, jeden mały 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();
}
Kiedy teraz go uruchamiam, wyświetla mi się błąd:
Współrzędne zakresu docelowego są poza wymiarami arkusza.
co wcześniej się nie pojawiało. Czy ktoś ma pomysł, dlaczego to robi?
Odpowiedzi
Kwestia:
Błąd znajduje się w tej linii:
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
pasteSheet.getLastRow()
zwraca numer wiersza znajdujący się na samym dole arkusza. Następnie rozważasz 12
zakres wierszy, ale pasteSheet
nie ma 12
wierszy po ostatnim wierszu z zawartością.
Rozwiązania:
Dodaj więcej wierszy w pasteSheet
:

lub możesz użyć insertRowsAfter :
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
Fragment kodu:
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();
}