Tengo un script que mantiene el número de filas en blanco en el nivel deseado. Las nuevas filas creadas deben tener el mismo formato y copiar las fórmulas de la última fila en blanco.
La siguiente secuencia de comandos hace eso por primera vez, pero si ingresa algunos registros nuevos y los vuelve a ejecutar, crea nuevas filas pero sin formatear. ¿Como arreglarlo?
[![Aquí está la hoja de Google:][1]][1]
function autoaddRows() { var addRows = 10; var sheet = SpreadsheetApp.getActive().getSheetByName('Plan dnia'); var range = sheet.getRange("B2:B").getValues(); var lastRowB = range.filter(String).length+6; var lastRow = sheet.getLastRow(); var blanknrows = lastRow - lastRowB; var diff = addRows - blanknrows; if (diff > 0) { sheet.insertRowsAfter(lastRow, diff); var numberOfCol = sheet.getLastColumn() - 1; var range = sheet.getRange(lastRowB, 2, 1, numberOfCol); range.copyTo(range.offset(1, 0, diff + 1, numberOfCol), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); range.clearNote(); } } [1]: https://i.stack.imgur.com/VvGjI.jpgEn su situación, ¿qué tal la siguiente modificación?
range.copyTo(range.offset(1, 0, diff + 1, numberOfCol), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); range.clearNote(); var dst = range.offset(1, 0, addRows, numberOfCol); range.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); range.copyTo(dst, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false); range.clearNote();diff + 1 como el número de filas, el final de la fila podría ser pequeño. Pensé que esta podría ser la razón de su problema. Entonces modifiqué diff + 1 para addRows . Y también, para copiar el formato, agregué range.copyTo(range.offset(1, 0, addRows, numberOfCol), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false) .