我正在寻找一个代码,允许我将一行从表单响应移动到特定的工作表。我知道这可以通过过滤器和公式来完成,但这对我不起作用,因为这将在将来由第三个人编辑。
我有一个代码可以将一行从一行移动到另一行,但仅在更改完成( onedit )+下拉列表时触发,其他方式不起作用。
function Move_New_Data(e) {
var source = e.source.getActiveSheet();
var range = e.range;
var col = range.getColumn();
var row = range.getRow();
var val = range.getValue();
if (col == 2 && val != ''){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(source.getName());
var targetsheet = ss.getSheetByName(val);
var data = sheet.getRange(row,1,1,sheet.getLastColumn()).getValues();
targetsheet.appendRow(data[0]);
sheet.deleteRow(row);
}
}
我可以在此处更改任何内容,以使其通过提交谷歌表单来工作并自动移动吗?
代码需要将基于单元格 2 的整行移动到特定工作表,例如:第 2 列将显示 A,然后代码会将整行从表单响应移动到名为 A 的工作表。
谢谢您的帮助。
这意味着与电子表格的 onFormSubmit 触发器一起运行
function onMyFormSubmit(e) {
Logger.log(JSON.stringify(e));
e.source.toast("Entry");
const sh = e.range.getSheet();
if (e.range.columnStart == 2 && e.value != '') {
e.source.toast("Gate1")
var tsh = e.source.getSheetByName(e.range.getValue());
var data = e.values.slice(1);
tsh.appendRow(data);
sh.deleteRow(e.range.rowStart);
}
}