javascript - 仅针对一种表单运行应用程序脚本

标签 javascript google-apps-script

我有一本工作簿,里面有两张纸。第一张工作表从表格 1 填充,第二张工作表从表格 2 填充。我有以下脚本,但只希望它在填写表格 1 时运行。以目前的形式,它甚至无法运行。任何帮助将不胜感激。

function setTrigger() {
  var form = FormApp.openByID('123456789abcdefg');
  ScriptApp.newTrigger('formSubmit').forForm(form).onFormSubmit().create();
}

function formSubmit(e) {
  var r = e.range;
  var row = r.getRow();
  var min = 1;
  var max = 1000000;
  var selectId = makeArray(min, max);
  if (row > 2) {
    var currentId = r.offset(2 - row, 5, row - 2, 1).getValues();
    for (var i = 0; i < currentId.length; i++) {
      selectId.splice(selectId.indexOf(currentId[i][0]), 1);
      if (selectId.length == 0) selectId = makeArray(min, max);
    }
  }
  r.offset(0, 5, 1, 1).setValue(selectId[Math.floor(Math.random() * selectId.length)]);
}

function makeArray(min, max) {
  var output = [];
  for (var i = min; i <= max; i++) {
    output.push(i);
  }
  return output;
}

最佳答案

使用 e.range.getSheet() 检查提交的响应是否对应于第一张或第二张工作表。

关于javascript - 仅针对一种表单运行应用程序脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37276017/

相关文章:

任何语言的小写Javascript测试字符串

html - 将表单结果提交到谷歌脚本?

google-maps-api-3 - 根据Google电子表格中的地名和城市检索位置地址

javascript - 如何在菜单按钮上运行不同文档中的功能

javascript - 带有多个 Slick 旋转木马的 appendDots

javascript - 如何将 *ngif 用于 [值]?

带有进度条的仅 JavaScript 文件 uploader

javascript - 如何从 PyQT 调用 javascript 函数

google-apps-script - 如何让谷歌电子表格每 1 分钟刷新一次?

google-apps-script - 有条件地将行从一张纸移动到另一张纸