La copia dello script di dati non funziona più
Ho usato uno script nel mio foglio google che ho trovato qui:
copia i dati da un foglio all'altro nello script dell'app Google e aggiungi una riga, un piccolo problema
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();
}
Quando lo eseguo ora mi dà un errore:
Le coordinate dell'intervallo di destinazione sono al di fuori delle dimensioni del foglio.
che prima non si presentava. Qualcuno ha un'idea del perché lo sta facendo?
Risposte
Problema:
L'errore è in questa riga:
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
pasteSheet.getLastRow()restituisce un numero di riga che si trova in fondo al foglio. Quindi consideri l' 12intervallo di righe ma pasteSheetnon ha 12righe dopo l'ultima riga con contenuto.
Soluzioni:
Aggiungi più righe in pasteSheet:
oppure puoi usare insertRowsAfter :
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
Snippet di codice:
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();
}