Estoy tratando de ejecutar este código que obtendrá las primeras 7 columnas de la hoja 1 en la hoja de cálculo 1 y las pegará en la hoja 2 de la hoja de cálculo 2, pero sigo recibiendo este error y no sé por qué.
Excepción: el número de filas en el rango debe ser al menos 1. 6ª línea
function MoveCode(){ const ss1 = SpreadsheetApp.getActive(); const ss2 = SpreadsheetApp.openById("1zU__ccPIMst54whmyrbmRnDRRjOtQBFPzXhw6NsFqpU");//or url whatever const ssh = ss1.getSheetByName('Sheet1'); const dsh = ss2.getSheetByName('Sourcing'); const vs = ssh.getRange(2,1,ssh.getLastRow() - 1,7).getValues(); dsh.getRange(2,1,vs.length,vs[0].length).setValues(vs); }test3 es la hoja de cálculo desde la que quiero pegar los datos.
Si necesita más explicación por favor hágamelo saber
Creo que en su secuencia de comandos cuando ssh.getLastRow() es inferior a 2, se produce un error de este tipo. Porque ssh.getLastRow() - 1 es 0 y -1. Por ejemplo, creo que cuando la hoja "Hoja1" solo tiene la fila de encabezado y no tiene valores, se produce ese error. Para eliminar este problema, ¿qué tal la siguiente modificación?
function MoveCode(){ const ss1 = SpreadsheetApp.getActive(); const ss2 = SpreadsheetApp.openById("###");//or url whatever const ssh = ss1.getSheetByName('Sheet1'); const dsh = ss2.getSheetByName('Sourcing'); const lastRow = ssh.getLastRow(); if (lastRow < 2) return; const vs = ssh.getRange(2, 1, lastRow - 1, 7).getValues(); dsh.getRange(2, 1, vs.length, vs[0].length).setValues(vs); } Al responder y agregar las imágenes de muestra, cuando vi sus imágenes, pensé que en su secuencia de comandos, ssh y dsh se usan como hoja de origen y hoja de destino, respectivamente. Pero en su imagen de muestra, pensé que podría querer usar ssh y dsh como la hoja de destino y la hoja de origen, respectivamente. Si mi comprensión es correcta, ¿qué tal el siguiente script de muestra?
En este caso, tenga cuidado con SpreadsheetApp.getActive() y SpreadsheetApp.openById("###") para cada hoja.
function MoveCode(){ const ss1 = SpreadsheetApp.getActive(); const ss2 = SpreadsheetApp.openById("###");//or url whatever const ssh = ss1.getSheetByName('Sheet1'); const dsh = ss2.getSheetByName('Sourcing'); const lastRow = dsh.getLastRow(); if (lastRow < 2) return; const vs = dsh.getRange(2, 1, lastRow - 1, 7).getValues(); ssh.getRange(2, 1, vs.length, vs[0].length).setValues(vs); }