我有一個腳本可以將空白行的數量保持在所需的水平。新創建的行應具有相同的格式并從最后一個空白行復制公式。
下面的腳本第一次這樣做,但是如果您輸入一些新記錄并再次運行它,它會創建新行但沒有格式化。如何解決?
[![這里是谷歌表:][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.jpg
uj5u.com熱心網友回復:
在您的情況下,如何進行以下修改?
從:
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();
- 我認為當空行超過2時,當
diff 1用作行數時,行的末尾可能會很小。我認為這可能是您的問題的原因。所以我修改diff 1為addRows. 而且,為了復制格式,我添加了range.copyTo(range.offset(1, 0, addRows, numberOfCol), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false).
參考:
- 復制到(目標,復制粘貼型別,轉置)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/418671.html
標籤:
