只为一个表单运行应用程序脚本
问题描述:
我有一个包含两个表单的工作簿。第一个表单从表单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()检查提交的响应是否对应于第一张或第二张纸。
你得到的错误是什么?触发器是否不运行或脚本设置触发器不运行? –