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

265
Views
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 4 years ago · Juan Pablo Isaza
3 answers
Answer question

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 4 years ago · Juan Pablo Isaza Report

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 4 years ago · Juan Pablo Isaza Report

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 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!