es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Rango como parámetro de función

Estoy tratando de crear una función que cuente el número de celdas en un rango que tienen el mismo fondo que la celda de referencia.

function Color_Count (rango, color_celda) {
 var libro = SpreadsheetApp.getActiveSpreadsheet();
 var hoja = libro.getActiveSheet();
 var colores_celdas = hoja.getRange(' + rango + ').getBackgroundColors();
 var color = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(' + color_celda + ').getBackgrounds();
 var cuenta = 0;

 for(var r = 0; r < colores_celdas.length; r++) {
   for(var c = 0; c < colores_celdas[0].length; c++) {
     if(colores_celdas[r][c] == color) {
       cuenta = cuenta + 1;
     }
   }
 }
    return cuenta;
}

Pero obtengo el error de que no se encuentra el rango. ¿Cómo puedo solucionarlo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Hay algunas cosas que podrían estar causando el error de “rango no encontrado” en la función Color_Count:

    1. Verifica que las referencias de rango y celda de color sean correctas.
      Asegúrate de que las variables rango y color_cell estén referenciando las celdas/rangos correctos. Es posible que haya un error de escritura o que los rangos hayan sido renombrados o movidos.
    2. Verifica que la hoja que deseas analizar esté activa.
      Asegúrate de que la hoja que deseas analizar esté actualmente activa en la hoja de cálculo. Puedes hacer esto llamando a sheet.getName() para confirmar que se está accediendo a la hoja correcta.

    3. Verifica que la función tenga los permisos necesarios.
      Es posible que el script no tenga los permisos necesarios para acceder a la hoja de cálculo o rango. Asegúrate de que el script esté autorizado y que la cuenta de Google que ejecuta el script tenga acceso a la hoja de cálculo.

    4. Asegúrate de que el rango no esté vacío.
      Si el rango especificado en rango está vacío, entonces el método getBackgroundColors() devolverá un array vacío, lo que podría ocasionar un error. Puedes verificar esto agregando una declaración if antes de los bucles for y devolviendo 0 si el rango está vacío:

    if (cell_colors.length == 0 || cell_colors[0].length == 0) {
      return 0;
    }
    

    Al solucionar cualquiera de los problemas anteriores en la función Color_Count, deberías poder resolver el error de “rango no encontrado”.

Comments are closed.