Copiar el script de datos ya no funciona
He estado usando un script en mi hoja de Google que encontré aquí:
Copie los datos de una hoja a otra en el script de la aplicación de Google y agregue una fila, un pequeño 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();
}
Cuando lo estoy ejecutando ahora me da un error:
Las coordenadas del rango objetivo están fuera de las dimensiones de la hoja.
que no aparecía antes. ¿Alguien tiene una idea de por qué está haciendo esto?
Respuestas
Problema:
El error está en esta línea:
var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
pasteSheet.getLastRow()devuelve un número de fila que se encuentra al final de la hoja. Luego, considera el 12rango de filas, pero pasteSheetno tiene 12filas después de la última fila con contenido.
Soluciones:
Agregue más filas en pasteSheet:
o puede usar insertRowsAfter :
pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
Fragmento de código:
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();
}