Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

391
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!