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

331
Visualizações
¿Cómo implementar la declaración IF-ELSE para cambiar el valor de la celda usando el script de la aplicación?

Aquí estoy tratando de cambiar el valor de la celda según la declaración IF-ELSE.

Como puede ver en la imagen a continuación, cuando el usuario intente ejecutar el script por primera vez, se enumerarán algunos archivos de Google Drive en la hoja con la marca ESTADO como "archivo nuevo" (fila 2 a 5).

Sin embargo, si se cargaron archivos nuevos en la unidad de Google, el usuario ejecutará un script "verificar archivos nuevos" para completar solo los archivos nuevos cargados en la hoja de Google (filas 6 y 7). Pero su marca de ESTADO está en blanco como se muestra en la imagen.

ingrese la descripción de la imagen aquí

Por lo tanto, utilicé la declaración IF-ELSE para convertir el ESTADO de la fila 2 a la 5 (" archivo nuevo" en "archivo antiguo ") Y la fila en blanco de 6 y 7 como "archivo nuevo" .

Aquí está el código:

 function updateMarker(){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var cellValue = sheet.getRange("C2:C"+ sheet.getLastRow()).getValue(); Logger.log(cellValue); if (cellValue == 'new file'){ sheet.getRange("C2:C"+ sheet.getLastRow()).setValue('OLD FILE'); } if(cellValue == '' ){ sheet.getRange("C2:C"+ sheet.getLastRow()).setValue('NEW FILE'); } }

Si ejecuto el código, convierte todo el valor de la celda desde la fila 2 hasta la 7 como "archivo antiguo" . Lo cual supongo que detecta solo la primera declaración if (cellValue == 'new file') .

Mi meta es

  1. para convertir el marcador de "archivo nuevo" en "archivo antiguo"
  2. para establecer el valor de celda vacía de los nuevos archivos cargados como "nuevo archivo"

¿Como puedó resolver esté problema?

DESPUÉS DE IMPLEMENTAR EL CÓDIGO DE SOLUCIÓN DADO ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Después de ejecutar por segunda y tercera vez, el ESTADO cambia y viceversa.

¿El ESTADO no cambia solo si el valor de la celda es "nuevo archivo" y si hay una celda vacía ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Llamar a getValue() en un rango de más de una celda solo devolverá el valor en la celda superior izquierda del rango.

Entonces la linea

 var cellValue = sheet.getRange("C2:C"+ sheet.getLastRow()).getValue()

en realidad solo establece cellValue en el valor en C2 , o 'new file' .

Esto hace que la línea:

 if (cellValue == 'new file')

siempre se evalúa como verdadero, por lo que se cambian todas las celdas.

Modificaciones:

  • Use .getValues() en lugar de getValue()
  • Bucle a través de todas las celdas
  • Vuelva a establecer la nueva matriz OLD FILE/NEW FILE en el rango de columnas
 function updateMarker() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1") const cells = sheet.getRange("C2:C" + sheet.getLastRow()) const cellValues = cells.getValues() Logger.log(cellValues) const newValues = [] cellValues.forEach((row) => { if (row[0] === "new file") { newValues.push(['OLD FILE']) } else if (row[0] === "OLD FILE" || row[0] === "NEW FILE") { newValues.push([row[0]]) } else { newValues.push(['NEW FILE']) } }) cells.setValues(newValues) }
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