一次将多个提交到电子表格时由 OnFormSubmit 触发的功能问题

Problem with function triggered by OnFormSubmit when multiple are submited at once to spreadsheet

我有一个 Google 脚本函数可以按预期工作,但是当一次收到许多表单提交时,我 运行 在复制数据时遇到问题。

如果数据传入速度足够快,错误信息可能会复制到另一个 sheet。

这是一个示例集。我一次提交了 4 个表格,数据都很好。

然而,当由 OnFormSubmit 触发的脚本 运行 它设法复制其中一行数据两次覆盖另一行。

正如您在下面看到的,数据 444 被复制了两次并且缺少 222 数据。

所以我的问题是:

有没有办法防止这种信息重复。如果一个已经 运行ning?

代码如下:

function Auto_move_form_data() {
  var form_name = "Form Responses 1";
  var open_name = "OPEN";

  var workbook = SpreadsheetApp.getActiveSpreadsheet();
  var form_ws = workbook.getSheetByName(form_name);
  var open_ws = workbook.getSheetByName(open_name);

  var form_last_row = form_ws.getLastRow()
  var open_last_row = open_ws.getLastRow()

  form_ws.getRange(form_last_row,2).copyTo(open_ws.getRange(open_last_row+1,1), {contentsOnly:true});
  form_ws.getRange(form_last_row,3).copyTo(open_ws.getRange(open_last_row+1,3), {contentsOnly:true});

}

试试这个:

为以下函数创建一个 onFormSubmit 触发器。

function Auto_move_form_data(e) {
  var dsh= SpreadsheetApp.getActive().getSheetByName("OPEN");
  dsh.appendRow([e.values[2],'',e.values[3]]);
}