skip to Main Content

I have this code (it’s pasted just a portion)

var valores = [[FACTURA.getRange(CELDA_NRO_FACTURA).getValue(),  //Nro Factura
                 FACTURA.getRange(CELDA_FECHA).getValue(),   //Fecha
                 FACTURA.getRange(CELDA_MEDIO_PAGO1).getValue(),   //Medio de pago
                 FACTURA.getRange(CELDA_DTO_RGO_GENERAL).getValue(),   //Dto/Rgo general
                
                //Fila 6
                 FACTURA.getRange(PRIMERA_FILA,PRIMERA_COLUMNA).getValue(),  //Código
                 FACTURA.getRange(PRIMERA_FILA,PRIMERA_COLUMNA + 1).getValue(),  //Cantidad
                 FACTURA.getRange(PRIMERA_FILA,PRIMERA_COLUMNA + 2).getValue(),  //Descripción
                 FACTURA.getRange(PRIMERA_FILA,PRIMERA_COLUMNA + 7).getValue(),  //Unitario
                 FACTURA.getRange(PRIMERA_FILA,PRIMERA_COLUMNA + 8).getValue(),  //Dto/Rgo x fila

                //Fila 7
                 FACTURA.getRange(PRIMERA_FILA + 1,PRIMERA_COLUMNA).getValue(),  //Código
                 FACTURA.getRange(PRIMERA_FILA + 1,PRIMERA_COLUMNA + 1).getValue(),  //Cantidad
                 FACTURA.getRange(PRIMERA_FILA + 1,PRIMERA_COLUMNA + 2).getValue(),  //Descripción
                 FACTURA.getRange(PRIMERA_FILA + 1,PRIMERA_COLUMNA + 7).getValue(),  //Unitario
                 FACTURA.getRange(PRIMERA_FILA + 1,PRIMERA_COLUMNA + 8).getValue(),  //Dto/Rgo x fila


                //Fila 8
                 FACTURA.getRange(PRIMERA_FILA + 2,PRIMERA_COLUMNA).getValue(),  //Código
                 FACTURA.getRange(PRIMERA_FILA + 2,PRIMERA_COLUMNA + 1).getValue(),  //Cantidad
                 FACTURA.getRange(PRIMERA_FILA + 2,PRIMERA_COLUMNA + 2).getValue(),  //Descripción
                 FACTURA.getRange(PRIMERA_FILA + 2,PRIMERA_COLUMNA + 7).getValue(),  //Unitario
                 FACTURA.getRange(PRIMERA_FILA + 2,PRIMERA_COLUMNA + 8).getValue(),  //Dto/Rgo x fila

                //Fila 9
                 FACTURA.getRange(PRIMERA_FILA + 3,PRIMERA_COLUMNA).getValue(),  //Código
                 FACTURA.getRange(PRIMERA_FILA + 3,PRIMERA_COLUMNA + 1).getValue(),  //Cantidad
                 FACTURA.getRange(PRIMERA_FILA + 3,PRIMERA_COLUMNA + 2).getValue(),  //Descripción
                 FACTURA.getRange(PRIMERA_FILA + 3,PRIMERA_COLUMNA + 7).getValue(),  //Unitario
                 FACTURA.getRange(PRIMERA_FILA + 3,PRIMERA_COLUMNA + 8).getValue(),  //Dto/Rgo x fila

                //Fila 10
                 FACTURA.getRange(PRIMERA_FILA + 4,PRIMERA_COLUMNA).getValue(),  //Código
                 FACTURA.getRange(PRIMERA_FILA + 4,PRIMERA_COLUMNA + 1).getValue(),  //Cantidad
                 FACTURA.getRange(PRIMERA_FILA + 4,PRIMERA_COLUMNA + 2).getValue(),  //Descripción
                 FACTURA.getRange(PRIMERA_FILA + 4,PRIMERA_COLUMNA + 7).getValue(),  //Unitario
                 FACTURA.getRange(PRIMERA_FILA + 4,PRIMERA_COLUMNA + 8).getValue(),  //Dto/Rgo x fila

                FACTURA.getRange(CELDA_OBSERVACIONES).getValue()  //Observaciones

                 ]];

  
datos.getRange(datos.getLastRow()+1,1,1,valores.length).setValues(valores);

and i want to change it by this code

var valores = [factura.getRange(CELDA_NRO_FACTURA).getValue(),  //Nro Factura
                 factura.getRange(CELDA_FECHA).getValue(),   //Fecha
                 factura.getRange(CELDA_MEDIO_PAGO1).getValue(),   //Medio de pago
                 factura.getRange(CELDA_DTO_RGO_GENERAL).getValue(),   //Dto/Rgo general
                 factura.getRange(CELDA_OBSERVACIONES).getValue()]  //Observaciones
  
Logger.log(valores)

const COLUMNA_CODIGO = 3
const COLUMNA_CANTIDAD = 4
const COLUMNA_DESCRIPCION = 5
const COLUMNA_UNITARIO = 10
const COLUMNA_DTO_RGO = 11
const CANT_FILAS_FACTURA = 10
var cont = 5
  
for(fila=0;fila < CANT_FILAS_FACTURA; fila++){
  valores.push(factura.getRange(PRIMERA_FILA + fila,COLUMNA_CODIGO).getValue())  //Código
  valores.push(factura.getRange(PRIMERA_FILA + fila,COLUMNA_CANTIDAD).getValue())  //Cantidad
  valores.push(factura.getRange(PRIMERA_FILA + fila,COLUMNA_DESCRIPCION).getValue())  //Descripción
  valores.push(factura.getRange(PRIMERA_FILA + fila,COLUMNA_UNITARIO).getValue())  //Unitario
  valores.push(factura.getRange(PRIMERA_FILA + fila,COLUMNA_DTO_RGO).getValue())  //Dto/Rgo x fila
  }

Logger.log(valores)
datos.getRange(datos.getLastRow()+1,1,1,valores.length).setValues(valores);

My problem is that I am a beginner and I don’t know how to assign the values to the "values" variable in the for. I think they are added with push, but when I run it it gives me the following error:

Exception: The parameters (number[]) don’t match the method signature for SpreadsheetApp.Range.setValues.

2

Answers


  1. Chosen as BEST ANSWER

    @Cooper Here it is a minimal reproducible example

    function Save(){
      var activeSheet = SpreadsheetApp.getActiveSpreadsheet();
      var bill = activeSheet.getSheetByName("FACTURA");
      var data = activeSheet.getSheetByName("Datos_Facturas");
      
      var values = [[bill.getRange("K3").getValue(),
                     bill.getRange("J3").getValue(),
                     bill.getRange("D3").getValue(),
                     bill.getRange("L17").getValue(),
                     bill.getRange("D17").getValue()]]
      
      Logger.log(values)
     
      for(row=0;row < 10; row++){
        values.push(bill.getRange(6+row,3).getValue())
        values.push(bill.getRange(6+row,4).getValue())
        values.push(bill.getRange(6+row,5).getValue())
        values.push(bill.getRange(6+row,10).getValue())
        values.push(bill.getRange(6+row,11).getValue())
      }
    
      Logger.log(values)
      data.getRange(data.getLastRow()+1,1,1,values.length).setValues(values);
    }
    

  2. For this table:

    COL1 COL2 COL3 COL4 COL5
    1 2 3 4 5
    2 3 4 5 6
    3 4 5 6 7
    4 5 6 7 8
    5 6 7 8 9
    6 7 8 9 10
    7 8 9 10 11
    8 9 10 11 12
    9 10 11 12 13

    The data array looks like this:

    [["COL1","COL2","COL3","COL4","COL5"],
    [1,2,3,4,5],
    [2,3,4,5,6],
    [3,4,5,6,7],
    [4,5,6,7,8],
    [5,6,7,8,9],
    [6,7,8,9,10],
    [7,8,9,10,11],
    [8,9,10,11,12],
    [9,10,11,12,13]]
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search