我编写了一个脚本,用于对工作表列中的条目进行排序和提取,并推送至Google Form ddl。这是功能性的,但是我在apps脚本中设置的触发器在数据中发生任何事件时都在编辑和更改时运行该功能。唯一起作用的触发器是表单提交,但这不会在下一次提交之前将提交到表单的新条目推送。该脚本将立即运行,并且不包含填充表单的数据,因为由表单数据提供的另一张纸(用于数据验证)提供了该数据(此传输需要几分钟)。我将在下面共享我的代码以供参考。感谢您提供的任何帮助!
function popFormList() {
Utilities.sleep(5000);
var sheet = SpreadsheetApp.openById('ID').getSheetByName("SHEET1");
var form = FormApp.openById('ID');
siteSort(sheet);
var siteValues = sheet.getRange(2, 3, sheet.getLastRow()-1)
.getValues()
.filter(function(siteElement, sitePos, siteArr) {
return siteArr.indexOf(siteElement) === sitePos;
});
var siteItem = form.getItems(FormApp.ItemType.LIST)
.filter(function(siteItem) {
return siteItem.getTitle() === "Title";
})[0].asListItem();
siteItem.setChoiceValues(siteValues);
endSort(sheet);
}
function siteSort(e) {
e.getRange(1, 1, e.getMaxRows(), e.getMaxColumns()).createFilter();
e.getRange('C1').activate();
e.getFilter().sort(3, true);
}
function endSort(e) {
e.getRange('B1').activate();
e.getFilter().sort(2, true);
e.getFilter().remove();
}