Tengo una hoja de Google para mi negocio que crea una lista de preparación para eventos.
Después de abordar un problema de limpieza automática durante más de 25 horas (grave), recibí ayuda de su fantástica comunidad, modifiqué el código para que funcionara, vea a continuación: ( si Fx está vacío, borre la celda de la izquierda ):
function cgar() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('auto'); var values = sheet.getRange("F11:F20").getValues(); var ranges = values.reduce((ar, [f], i) => { if (f == "") ar.push("E" + (i + 11)); return ar; }, []); sheet.getRangeList(ranges).clearContent(); }Si cambio el código para tomar todo el rango de "F5:F24" en lugar de los grupos individuales "F11:F20", borra las filas de encabezado de la celda combinada E10:F10 y E21:F21.
2.
var syr1 = ("D6") var syr2 = ("D7") var syr1isblank = SpreadsheetApp.getActiveSheet().getRange(syr1).isBlank() var syr2isblank = SpreadsheetApp.getActiveSheet().getRange(syr2).isBlank() if (syr1isblank == true) { SpreadsheetApp.getActiveSheet().getRange("C16:D23").moveTo(sheet.getRange(syr1)) } else if (syr2isblank == true && syr1isblank == false ) { SpreadsheetApp.getActiveSheet().getRange("C16:D23").moveTo(sheet.getRange(syr2)) }He estado usando if y else if para mover los rangos de grupo que están debajo de los borrados al espacio recién creado arriba, pero es torpe:
¿Hay alguna manera de que también pueda modificar esto para buscar un rango vacío? Creo que el proceso sería así:
primera celda vacía detectada
¿Marcar la celda de la izquierda a una variable?
Escanee el rango fx E11:F20 para lastRow después de que haya sido borrado por la función anterior
Mueva el rango a la celda marcada con la variable arriba.
Imagen de la hoja en cuestión: https://i.stack.imgur.com/ND2DC.png
Agradecería mucho cualquier ayuda, gracias.