• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

147
Vistas
Establecer un rango en mayúsculas en hojas APP SCRIPT

Quiero crear una secuencia de comandos que tendré en un menú que obtenga el rango "A1: C" y lo escriba en mayúsculas. El problema es que arroja un error "Error de tipo: valores. toUpperCase no es una función" al intentar usar toUpperCase() .

Obtuve el siguiente código:

 function allUpper() { var values = SpreadsheetApp.getActiveSheet().getRange("A1:C").getValues(); var valuesUpper = values.toUpperCase(); ss.getRange("A1:C").setValue(valuesUpper); }

Soy bastante nuevo en JS y hojas api. Me siento tonto porque parece algo simple.

EDITAR 1: Ahora sé que .toUpperCase() no funciona en matrices. Pero las soluciones propuestas de mapear la matriz y recorrer los elementos internos todavía arrojan el mismo error con toUpperCase();

EDICIÓN 2: subo una muestra de mis datos solicitados por @NEWAZA Muestra

about 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Range.getValues devuelve una matriz bidimensional. Tendrás que hacer toUpperCase() para cada fila y columna

 function allUpper() { var values = SpreadsheetApp.getActiveSheet().getRange( "A1:C" ).getValues(); for ( var row = 0; row < values.length; row++ ) { for ( var col = 0; col < values[ row ].length; col++ ) { values[ row ][ col ] = values[ row ][ col ].toUpperCase(); } } ss.getRange( "A1:C" ).setValues( values ); }
about 3 years ago · Juan Pablo Isaza Denunciar

0

Probar:

 function allUpper() { const range = SpreadsheetApp.getActiveSheet() .getRange("A1:C") const values = range.getDisplayValues() .map(row => row.map(col => (col) ? col.toUpperCase() : col)) range.setValues(values); }

Una vez que obtengamos nuestros valores en values , usamos .map() para recorrer cada fila, y dentro de cada fila, recorreremos cada celda/columna y lo estableceremos en mayúsculas.

Otra forma común de hacer esto es usar bucles for y anidar uno dentro de otro.

Lee mas:

  • matriz.mapa()

Una cosa importante a tener en cuenta al modificar un rango de valores es que deberá asegurarse de que el rango que está configurando sea del mismo 'tamaño' que estos valores.

Originalmente, estaba obteniendo valores de A1:C e intentaba configurarlos en A1 , lo que no funcionaría debido a la diferencia en el 'tamaño'.

Editar: celdas en blanco dirigidas en el mapeo de columna/celda.

 (col) ? col.toUpperCase() : col

Si el elemento tiene valor, modifíquelo a .toUpperCase() , o déjelo.

about 3 years ago · Juan Pablo Isaza Denunciar

0

No hay necesidad de un bucle for anidado ineficiente cuando puede hacer lo siguiente:

 values.map( function( row ) { return row.map( function( cell ) { cell = cell.toUpperCase(); } ); }
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda