将范围从最后一行复制到新工作表

时间:2017-01-10 11:20:38

标签: google-apps-script

我想从Google表单中获取最后一个回复,并将其复制到另一个表单上的相同范围。

第二张表在A列和A列中有一些数据。 B(登录名和密码)我想指定为某人完成注册表。

我希望在收到回复时,将表单响应表中B列到H的数据复制到包含登录名/密码列的表单上的C列到I列。

我知道我错过了从最后一行获取范围的代码,但我知道根本没有编码,而且我当前的脚本是根据我在网络和参考资料中发现的东西编译的。

非常感谢任何建议。

function onEdit(e) {


  var spreadsheet = SpreadsheetApp.openById("sheetid");
  var sheet = spreadsheet.getSheets()[0];


  var lastrow = sheet.getLastRow();
  var range = sheet.getRange(2,2,1,7);
  values = range.getValues();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var SSsheet = ss.getSheets()[1];


  var ssRange = SSsheet.getRange(2,3,1,7);
  ssRange.setValues(values);

  }

2 个答案:

答案 0 :(得分:1)

尝试使用copyTo(destination)。它将数据从一系列细胞复制到另一个细胞范围。值和格式都被复制。

 // The code below will copy the first 5 columns over to the 6th column.
 var sheet = SpreadsheetApp.getActiveSheet();
 var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5);
 rangeToCopy.copyTo(sheet.getRange(1, 6));
 }

您也可以尝试使用copyValuesToRangecopyValuesToRange

有关其他代码示例,您还可以参考this forum

答案 1 :(得分:0)

function onEdit(e) {

var spreadsheet = SpreadsheetApp.openById("ID");
var sheet = spreadsheet.getSheets()[0];
var lastRow = sheet.getLastRow();
var range = sheet.getRange("A"+(lastRow)+":G"+(lastRow));
var values = range.getValues();


var ss = SpreadsheetApp.getActiveSpreadsheet();
var SSsheet = ss.getSheets()[1];
var getRow = SSsheet.getLastRow() + 1;
var ssRange = SSsheet.getRange(getRow, 1, values.length, values[0].length);
ssRange.setValues(values);

尝试一下, 这段代码复制了您想要的某个范围内的最后一个值,并将其粘贴到另一张纸的最后一个可用行中。 它的代码仅在要复制的地方相同,将其指定为我要复制的大小。希望对您有帮助:D