[英]Google sheet script auto add new rows with copied formulas
I need to create function which adds rows with copied formulas from above rows.我需要创建 function ,它从上面的行中添加带有复制公式的行。 After the script is launched it should result in accurate number (set 5 i this code) of blank rows at the end of the sheet.
脚本启动后,它应该会在工作表末尾产生准确的空白行数(在此代码中设置 5)。
The code I managed to create counts what number of rows should be added but adds only one row with copied formulas at the end.我设法创建的代码计算了应该添加的行数,但最后只添加了一行复制的公式。
Please help me edit this code to multiple the result of the function by "rowstoadd" parameter.请帮我编辑此代码,以通过“rowstoadd”参数将 function 的结果倍增。
function autoaddRows() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Harmonogram');
var range = sheet.getRange("B2:B").getValues();
var lastRowB = range.filter(String).length + 2;
var lastRowA = sheet.getLastRow();
var blanknrows = sheet.getLastRow() - lastRowB;
if (blanknrows < 5) {
let rowstoadd = 5 - blanknrows;
Browser.msgBox(rowstoadd);
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let lastRowIndex = sheet.getLastRow();
let existingRange = getRowRange(sheet, lastRowIndex);
sheet.insertRowAfter(lastRowIndex);
let newRange = getRowRange(sheet, ++lastRowIndex);
existingRange.copyTo(newRange);
newRange.setFormulas(newRange.getFormulas());
newRange.clearNote();
}
function getRowRange(sheet, rowIndex) {
return sheet.getRange(rowIndex, 1, 1, sheet.getLastColumn());
}
}
I believe your goal is as follows.我相信你的目标如下。
In this case, how about the following modified script?在这种情况下,下面的修改脚本怎么样?
function autoaddRows() {
var addRows = 5;
var sheet = SpreadsheetApp.getActive().getSheetByName('Harmonogram');
var range = sheet.getRange("B2:B").getValues();
var lastRowB = range.filter(String).length + 1;
var lastRow = sheet.getLastRow();
var blanknrows = lastRow - lastRowB;
var diff = addRows - blanknrows;
if (diff > 0) {
sheet.insertRowsAfter(lastRow, diff);
var range = sheet.getRange("B" + lastRowB);
range.copyTo(range.offset(1, 0, diff + 1), SpreadsheetApp.CopyPasteType.PASTE_FORMULA, false);
range.clearNote();
}
}
newRange.clearNote();
newRange.clearNote();
is used.range.clearNote();
range.clearNote();
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.