Estoy tratando de llamar a una función desde la barra de menú para copiar un conjunto de valores en las hojas de Google a una pestaña de "archivo". El error que recibo es "Excepción: los parámetros (SpreadsheetApp.Range) no coinciden con la firma del método para SpreadsheetApp.Range.setValues". aquí está el código:
function archiveCompleted () { var spreadsheet = SpreadsheetApp.getActive(); var copyFrom = spreadsheet.getSheetByName("completed autofill"); var copyDest = spreadsheet.getSheetByName("Completed Orders"); var sourceRange = copyFrom.getRange(1,1,copyFrom.getLastRow(),copyFrom.getLastColumn()); var destRange = copyDest.getRange(copyDest.getLastRow() + 1,1,copyFrom.getLastRow(),copyFrom.getLastColumn()); //1,1,copyFrom.getLastColumn()); sourceRange.copyValuesToRange(destRange); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Copy From Feildpine'),true); }¡Gracias por cualquier ayuda!
Pensé que acerca de su mensaje de error de Exception: The parameters (SpreadsheetApp.Range) don't match the method signature for SpreadsheetApp.Range.setValues. , desafortunadamente, no puedo encontrar setValues en su secuencia de comandos. Así que me preocupa que hayas copiado mal tu guión actual.
Pero, cuando vi su script, pensé que sourceRange.copyValuesToRange(destRange); se requiere modificar. Porque los argumentos de copyValuesToRange son gridId, column, columnEnd, row, rowEnd o sheet, column, columnEnd, row, rowEnd . Ref1 , Ref2
Entonces, en esta modificación, me gustaría proponer modificar la línea de la siguiente manera.
sourceRange.copyValuesToRange(destRange); sourceRange.copyTo(destRange, {contentsOnly: true});