Google apps script 表单提交删除行

Google apps script 表单提交删除行,google-apps-script,google-sheets,google-forms,triggers,Google Apps Script,Google Sheets,Google Forms,Triggers,我一直在使用以下代码在行项目完成后移动和删除行 我现在已经通过谷歌表单从手工输入改为行输入,但并没有达到同样的效果 任何想法或帮助都将不胜感激 我假设表单提交的行为不同,我只是没有找到正确的命令使其正常工作 function onEdit(event) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = event.source.g

我一直在使用以下代码在行项目完成后移动和删除行

我现在已经通过谷歌表单从手工输入改为行输入,但并没有达到同样的效果

任何想法或帮助都将不胜感激

我假设表单提交的行为不同,我只是没有找到正确的命令使其正常工作

function onEdit(event) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = event.source.getActiveSheet();
    var r = event.source.getActiveRange();

  if(s.getName() == "Open Tickets" && r.getColumn() == 16 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Closed Tickets");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  } else if(s.getName() == "Closed Tickets" && r.getColumn() == 16 && r.getValue() == false) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Open Tickets");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}

当您从手动输入改为使用Google表单时,您不能再使用on edit触发器,但可以使用Form submit可安装触发器

相关的

参考文献


请在您提到的更改前后提供更多上下文和更准确的工作流描述。一个可正确复制的示例可能会有所帮助。OneEdit触发器仅在用户操作时发生。将其用作通用票务系统,表单现在将提交用于票务,一旦任务完成,它将在第P列中标记为已完成,并移动到关闭的票务选项卡。使用表单提交时,数据不会从表单提交页面移动。我想另一种选择是离开表单响应1选项卡,将新条目复制到打开的票证选项卡,并按原样使用当前脚本,但我在将表单响应1选项卡中的数据附加到打开的票证选项卡Function copyDatae{var sheetName=e.NamedValue['open tickets'][0]时也遇到问题;var ss=SpreadsheetApp.getActiveSpreadsheet;var sheet=ss.getSheetByNamesheetName;if!sheet{sheet=ss.insertSheetsheetName;var formSheet=e.range.getSheet;var headers=formSheet.getRange1,1,1,formSheet.getLastColumn;headers.copyTosheet.getRange1,1;}sheet.appendRowe.values;}