在App Script中选择特定范围而不是活动范围

时间:2018-03-27 09:36:35

标签: google-apps-script google-sheets

我已经在Google App Script上编写了一个脚本,该脚本将一次从一张纸上获取一个范围,复制该范围内的值并将它们粘贴到另一张纸上。

我这样做是这样做的:

    var range = sh.getDataRange().offset(0, 0);  
  var data = range.getValues();
  var ts = SpreadsheetApp.openById('SHEETID').getSheetByName('SHEETNAME')
  ts.getRange(ts.getLastRow() + 1, 1, data.length, data[0].length).setValues(data)

但是,我希望指定要复制的确切范围以及将数据粘贴到的其他确切范围。

我希望将范围复制/粘贴到A到Z列,同时仍然保留脚本中的getLastRow()

我该怎么做?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用getRange(a1Notation)获取范围及其内容。我通常会选择A1表示法。样品:

// Get a range A1:D4 on sheet titled "Invoices"
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var range = ss.getRange("Invoices!A1:D4");
 // Get cell A1 on the first sheet
 var sheet = ss.getSheets()[0];
 var cell = sheet.getRange("A1");

您可以使用其他的getRange变体。选择你喜欢的东西。

要完全复制和粘贴,您可以使用copyTo(destination)

  // The code below copies the first 5 columns over to the 6th column.
 var sheet = SpreadsheetApp.getActiveSheet();