在Google表格中插入新行并将预先格式化的行复制到其中

时间:2017-01-12 18:41:02

标签: google-apps-script google-sheets

这是我的第二个Google Apps脚本,我被卡住了,所以会感激一些帮助。

要求: 我想自动将新行添加到Google表格中。

脚本将在选定行之后插入一个新行,然后将预先格式化的行(隐藏)复制到新行中。

迄今为止的进展: 下面的脚本将新行插入正常,但随后将预先格式化的行复制到先前选定的行而不是新行。

需要更改哪些内容才能将脚本复制到新行?

function onOpen(e) {
var menu = [{name: "Row", functionName: "addRow"}]
SpreadsheetApp.getActiveSpreadsheet().addMenu("Add", menu);
}

function addRow() {
var sheet = SpreadsheetApp.getActiveSheet(), Active = sheet.getActiveCell().getRow();

var rangeToCopy = sheet.getRange("PreFormattedRow");
sheet.insertRowAfter(Active);
rangeToCopy.copyTo(sheet.getActiveCell());
}

2 个答案:

答案 0 :(得分:0)

尝试使用1递增活动单元格的行。这应该是新插入的行。

function addRow() {
var sheet = SpreadsheetApp.getActiveSheet(),
    row = sheet.getActiveCell()
        .getRow(),
    rangeToCopy = sheet.getRange("PreFormattedRow");
sheet.insertRowAfter(row);
rangeToCopy.copyTo(sheet.getRange(row + 1, 1));
}

答案 1 :(得分:0)

您的所有Google脚本都是正确的。只有您必须添加一行以下才能获得 先前选择的行格式转换为新添加的原始格式。

rangeToCopy.copyFormatToRange(sheet.getActiveCell());

并用于删除行格式

rangeToCopy.copyValuesToRange(sheet.getActiveCell());