如果第2列上的值与值匹配,则复制最后一行onFormSubmit

时间:2017-07-27 01:46:04

标签: javascript google-apps-script

我正在尝试找到一种方法,将表单提交的最后一行复制到我正在使用的电子表格中的另一张表格中。所有这些都将基于第2栏中的价值。

对于我目前的电子表格,我尝试了不同的方法,但我没有成功。



function copyLastRow(event) {  
var target = SpreadsheetApp.openById('1ulIvWOQIH9MRg9RSW6Xg5iHRikOBFJ0L9XQ46Y_r_6I').getSheetByName('Sheet8'); // copy data into this file & sheet.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1'); // name of source sheet. 
var lastrow = sheet.getLastRow();
var sourceData = sheet.getRange(lastrow, 1,1, 12).getValues();

  target.appendRow(sourceData[0])
}



function onEdit(event){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  
  
  if(s.getName() == "Sheet8" && r.getColumn() == 2 && r.getValue() == "Yes") {
    var row = r.getLastRow();
   var numColumns = s.getLastColumn();
   var targetSheet = ss.getSheetByName("Sheet7");
   var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    var source = s.getRange(row, 1, 1, numColumns).getValues;
target.appendRow(source[0])
  }
  
}




这是我使用的最后一个代码(来自此处的其他帖子,无法记住确切的帖子),但似乎无效。此外,这最后一个代码也不是我想要的 - 因为它使用两个步骤而不是一个。

https://docs.google.com/spreadsheets/d/1ulIvWOQIH9MRg9RSW6Xg5iHRikOBFJ0L9XQ46Y_r_6I/edit?usp=sharing

正如我所提到的,我希望(如果可能的话)一旦表单提交了"是"在第2列(在电子表格中)将该行传输到另一个工作表(工作表名称=是),其中所有行的值为"是"将被管理。

如果回答"否"同样会发生。 "表格回复1"将是我的主要工作表,另外两个将组织个人价值观。

提前致谢!

1 个答案:

答案 0 :(得分:1)

这个怎么样?

function copyLastRow(event) 
{  
   var target = SpreadsheetApp.openById('1ulIvWOQIH9MRg9RSW6Xg5iHRikOBFJ0L9XQ46Y_r_6I').getSheetByName('Sheet8');
   if(event.values[1]=='Yes')
   { 
      target.appendRow(event.values);
   }
}