【发布时间】:2020-03-30 23:27:51
【问题描述】:
我有一个将编辑响应 URL 放在第 100 列的触发器。
不知道我抄袭谁,请随意引用自己,lol
function assignEditUrls() {
var form = FormApp.openById('XXXXXXXXXXXXXX');
//enter form ID here
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Current');
//Change the sheet name as appropriate
var data = sheet.getDataRange().getValues();
var urlCol = 100; // column number where URL's should be populated; A = 1, B = 2 etc
var responses = form.getResponses();
var timestamps = [], urls = [], resultUrls = [];
for (var i = 0; i < responses.length; i++) {
timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
urls.push(responses[i].getEditResponseUrl());
}
for (var j = 1; j < data.length; j++) {
resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j][0].setMilliseconds(0))]:'']);
}
sheet.getRange(2, urlCol, resultUrls.length).setValues(resultUrls);
}
但是,我需要扩展它以运行两个不同脚本之一,具体取决于这是对表单的初始响应还是对现有响应的编辑
//first run
if (check_if_edited(e)==false)
{
do_something();
}
//all other runs
else
{
do_something_else();
}
我该怎么做?
[编辑]
我很抱歉:我想根据回复执行此操作,而不是针对第一次提交表单。所以初始响应运行一个脚本,但如果用户编辑他们的响应,我需要运行一个单独的脚本
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。我无法理解
a trigger that places the Edit Response URL in the 100th column和However, i need to expand it to run one of two different scripts, depending on if this is the initial response to a form or an edit of an existing response。可以问一下他们的详细情况吗? -
好吧,谷歌表单允许您编辑以前提交的回复,上面的脚本记录了允许您编辑它们的链接。其次,我想在有人提交条目时运行一个脚本。但如果他们编辑一个条目,我想运行一个单独的脚本
-
感谢您的回复。不幸的是,我无法从您的回复中了解您的目标。这是因为我的英语水平不好。对此我深表歉意。
-
嗯,不幸的是,它并没有完全回答我的问题,哈哈。
标签: google-apps-script google-sheets triggers google-forms