我试图创建一个脚本,将采取一种新形式的响应,并将其移动到根据提交的资料其他工作表。 例如,假设的形式有两种答案选择A,B的电子表格有三个表; 表格回应,表A,表B.如果有人提交表单和选择,我需要一个新行从“表格回应”移动到“表A”。 我发现别人的脚本,正是这一点,但使用的OnEdit功能。 我无法弄清楚如何修改这个脚本时,一种新的形式响应提交工作。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Form Responses" && r.getColumn() == 2 && r.getValue() == "A") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Sheet A");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
我用安装触发器和替换onFormSubmit的OnEdit功能,但不起作用。 我真的很感激,如果有人可以帮助我。
谢谢,
我有收集表单提交电子表格,然后有过滤掉了根据答案提交这些额外的床单。 这一切都只是用公式。 莫非是这样的伎俩也?
试试在你的变量比较少一点广阔,,例如,任何提交发送到薄片是恒定的,并且已经解决。
function formSubmission() {
var s = SpreadsheetApp.getActiveSheet();
var data = range.getValues(); // range is a constant that always contains the submitted answers
var numCol = range.getLastColumn();
var row = s.getActiveRow;
var targetinfo = s.getRange(row,(Yourcolumn#here).getValue);
if(targetinfo() == "Desired Sheet Name") {
var targetSheet = ss.getSheetByName("Sheet A");
var targetrow = targetSheet.getLastrow()+1);
var Targetcol = numCol();
targetSheet.getRange(targetrow,1,1,Targetcol).setValues(data);
}
}
我没有测试,但希望它有助于查找事件对象的开发者指南我刚刚发现它,它阐明了很多
文章来源: Google Script - Move new submissions to another sheet based on the responses