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

copy last row onFormSubmit if the value on column 2 matches the value

我正在尝试找到一种方法,将表单提交的最后一行复制到我正在使用的传播sheet 中的另一个sheet。所有这些都将基于第 2 列中的值。

对于我目前的传播sheet,我尝试了不同的方法,但都没有成功。

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])
  }
  
}

这是我最后一次使用的代码(来自这里的另一个 post,不记得确切的 post),但它似乎不起作用。此外,这最后一段代码也不是我真正想要的——因为它使用两个步骤而不是一个。

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

正如我所提到的,我希望(如果可能的话)一旦表单被提交,第 2 列(在传播 sheet 中)中 "Yes" 的值将该行转移到另一个 sheet (Sheet name = Yes) 其中所有值为 "Yes" 的行都将被管理。

如果答案 "No",也会发生同样的情况。 "Form Responses 1" 将是我的主要 sheet,另外两个将组织个人价值观。

提前致谢!

这个怎么样?

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