需要从生成的表单中移动行 sheet

Need to move rows from form generated sheet

我有一项调查 sheet,我需要我的团队查看一次,但之后我希望我的团队将行设置为“已关闭”以存档 sheet。过去,对于其他 sheet,我使用过此脚本,但它似乎不适用于链接 sheet 的表单。经过研究,我发现您无法从链接 sheet 的表单中剪切,但您可以删除行,我的理论是脚本正在尝试剪切,这就是为什么不起作用的原因。 “复制”和删除方法是什么?

    function onEdit(event) {
  // assumes source data in sheet named Needed
  // target sheet of move to named Acquired
  // test column with yes/no is col 4 or D
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  var sheets = ["Form Responses", "Input"];
  if(sheets.includes(s.getName()) && r.getColumn() == 1 && r.getValue() == "Closed / Move to Archive") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Archive");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}

非常感谢任何帮助

function onEdit(e) {
  var sh = e.range.getSheet();
  var sheets = ["Form Responses", "Input"];
  if(sheets.includes(sh.getName()) && e.range.columnStart == 4 && e.value == "Closed") {
    var tsh = e.source.getSheetByName("Archive");
    var tgt = tsh.getRange(tsh.getLastRow() + 1, 1);
    sh.getRange(e.range.rowStart, 1, 1, sh.getLastColumn()).copyTo(tgt);
    sh.deleteRow(e.range.rowStart);
  }
}

我的表单回复Sheet:

存档Sheet:

正如我想象的那样,问题是

moveTo(target)

我改成了

copyTo(target)

现在可以正常使用了