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

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

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 Relatório

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 Relatório

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