如何定义谷歌应用程序脚本中可能不同的范围

时间:2017-05-30 17:10:05

标签: google-apps-script google-sheets

我正在尝试使用(时间驱动的)Google App脚本制作一份电子表格的副本。我在这里发现了一段非常有用的代码,但我担心的是范围经常变化(添加新行)。无论范围如何变化,我如何复制整个电子表格?因为您可以在下面的代码中看到我已经定义了范围,但是当这个更改时,将丢弃超出定义范围的信息。我能做什么? 提前致谢。

这里是我正在使用的代码:

    function saveAsSpreadsheet(){ 
      var timestamp = new Date();
      var sheet = SpreadsheetApp.getActiveSpreadsheet();
      var range = sheet.getRange('sheetName!A1:AO158');
      sheet.setNamedRange('sheetName', range);
      var TestRange = sheet.getRangeByName('sheetName').getValues(); 
      Logger.log(TestRange); 
      var destFolder = DriveApp.getFolderById("folderID"); 
      DriveApp.getFileById(sheet.getId()).makeCopy("FileName:"+ timestamp, destFolder); 
    }

1 个答案:

答案 0 :(得分:0)

如果您需要获取由A列的第一个单元格定义的范围对象以及A列中包含数据的最后一个单元格,请使用以下代码:

  var range = sheet.getRange(1, 1, sheet.getLastRow(), 1); 

getRange()方法有几个重载,并且可以接受定义范围边界的数值。更多相关信息https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer)

如果您需要复制所有内容,请使用getDataRange()方法。