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.
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
¿Como puedó resolver esté problema?
DESPUÉS DE IMPLEMENTAR EL CÓDIGO DE SOLUCIÓN DADO 
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 ?
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.
.getValues() en lugar de getValue()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) }