在Google Sheets中追加数据范围的脚本

4

我有一个脚本,可以将一系列数据复制并发送到另一个工作表。 我想在脚本中添加另一部分,以便执行相同的功能,但是将数据追加到新行。

  function saveToRecords() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var source = ss.getRange('Report!L1:AC1');
    source.copyTo(ss.getRange('Records!A3:R3'), {contentsOnly: true});
  }

我将这个脚本附加到Google表格中的按钮上,数据从Report!发送到Records!Records!工作表将保存此数据。因此,每次单击该按钮时,我希望将数据发送到新行。
我知道有一种简单的方法可以做到这一点!我一直被难住了。感谢您的帮助。
1个回答

8

是的,有办法进行操作。您可以使用 getLastRow() 方法。

因此,您的代码应该像这样:

function appendToRecords() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var reportSheet = ss.getSheetByName("Report");
  var recordsSheet = ss.getSheetByName("Records")
  var reportData = reportSheet.getRange("L1:AC1")
                              .getValues();
  var lastRow = recordsSheet.getLastRow();
  //copy data
  recordsSheet.getRange(lastRow + 1, 12, 1, 18)
              .setValues(reportData);

}

在倒数第二行中,12, 1, 18 是什么意思/作用? 编辑,我相信这是指:https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer) - Mint

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接