Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

392
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda