2017-07-27 61 views
1

我试图找到一种方法将表单提交的最后一行复制到我正在使用的电子表格中的另一个工作表。所有这些将基于第2列中的值。复制最后一行onFormSubmit如果第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

这个怎么样?

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

感谢您的及时回答!我无法理解我应该把这行代码放在哪里。我试图把它放在copyLastRow事件行中,并且它自己,但它似乎并没有工作。当你有时间让我知道我可以如何将其整合到脚本中。谢谢 – Martin111

+0

谢谢!我知道了。 – Martin111

+0

对不起,我猜我认为用事件参数你会知道它需要绑定到你的表单提交触发器上。 – Cooper

相关问题