【发布时间】:2020-05-25 23:38:09
【问题描述】:
我有以下“添加行”Google Apps 脚本,当用户单击按钮时触发:
//Add Row to Additional Duties Sheet
function AddRowtoAdditionalDutiesSheet() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('3:3').activate();
spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('A4:X4').activate();
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('A3:X4'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('3:3').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, commentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('G4:K4').activate();
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('G3:K4'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('F4').activate();
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('F3:F4'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('R4').activate();
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('R3:R4'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('X4').activate();
spreadsheet.getActiveRange().autoFill(spreadsheet.getRange('X3:X4'), SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
spreadsheet.getRange('A3').activate();
}
这是我的工作表的副本,其中包含 A 到 X 列。
脚本在插入行后将某些单元格中的公式从第 4 行复制到第 3 行。问题是有很多用户填充工作表,有时公式没有粘贴到第 3 行。经过大量观察,我相信这是因为 2 个不同的用户同时单击按钮,脚本也是慢慢粘贴公式。有没有更好的方法来编写脚本以使其更快?
【问题讨论】:
标签: google-apps-script google-sheets