Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
error requireValueInRange: los parámetros (número []) no coinciden con la firma del método

Tengo una secuencia de comandos de la aplicación de Google que (entre otras cosas) proporciona una serie de menús desplegables en las celdas según los valores elegidos en la celda anterior. Esencialmente, cuando se selecciona un valor de celda, ese valor se usa en una búsqueda de Google Big Query y la siguiente celda se completa con valores de Big Query.

Hago cumplir la validación de las opciones disponibles en el menú desplegable a través de la siguiente función

 function applyValidationToCell(list, cell) { //create a valdation rule, essentially that the available values must be in the list passed ot the function var rule = SpreadsheetApp.newDataValidation() //.requireValueInList(list) .requireValueInRange(list) .setAllowInvalid(false) .build(); cell.setDataValidation(rule); }

Todo funcionó bien hasta que encontré un caso en el que hay más de 500 opciones en la lista de selección y me aparece el error The data validation rule has more items than the limit of 500. Use the 'List from a range' criteria instead.

Miré los documentos en https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder#requireValueInRange(Range) y también leí estas preguntas SO Necesita respuesta a "Los parámetros (número []) no coinciden con la firma del método para el error SpreadsheetApp.Range.setValues” y luego las respuestas útiles de @TheMaster en ¿Cómo se resuelve un error de "Los parámetros (número []) no coinciden con la firma del método para SpreadsheetApp.Range. setValues" y ¿Qué devuelve el método de rango getValues() y acepta setValues()?

Cuando estaba usando .requireValueInList(list) , la forma de los datos pasados a la función era ["Donruss","Leaf","Panini","Topps"]

Para lidiar con requireValueInRange , intenté modificar la estructura a matrices 2D como se sugiere en las respuestas anteriores, por ejemplo [["Donruss"],["Leaf"],["Panini"],["Topps"]] y [["Donruss","Leaf","Panini","Topps"]]

Sin embargo, siempre recibo el error Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.DataValidationBuilder.requireValueInRange.

¿Alguien puede aconsejarme sobre la forma correcta de pasar valores a requireValueInRange ?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Descripción

Aquí hay un ejemplo simple de cómo usar un rango para una regla de validación de datos.

En su caso, guarde los resultados de Big Query en una hoja usando setValues(), luego flush() y luego agregue la regla de validación de datos para la celda que le interesa.

Guion

 function runTest() { try { let spread = SpreadsheetApp.getActiveSpreadsheet(); let sheet = spread.getSheetByName("Sheet1"); let cell = sheet.getRange("A6"); let range = sheet.getRange("A1:A4"); let rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); cell.setDataValidation(rule); } catch(err) { console.log(err); } }

Referencia

  • https://developers.google.com/apps-script/reference/spreadsheet/data-validation-builder
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda