如果第 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);
}
}
我正在尝试找到一种方法,将表单提交的最后一行复制到我正在使用的传播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);
}
}