首页 > 解决方案 > 编辑时未触发 Google Apps 脚本

问题描述

我编写了一个脚本来对表格列中的条目进行排序和提取,然后推送到 Google Form ddl。这是功能性的,但是当数据中发生任何一个事件时,我在应用程序脚本 ide 中设置的触发器以在编辑和更改时运行该函数什么都不做。唯一有效的触发器是表单提交,但这不会将提交到表单的新条目推送到下一次提交。该脚本将立即运行,并且不会包含填充表单的数据,因为由另一个表单(用于数据验证)馈送,该表单数据馈送自表单数据(此传输需要几分钟)。我将在下面分享我的代码以供参考。感谢您的任何帮助,您可以提供!

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();
}

标签: google-apps-scriptgoogle-sheetstriggers

解决方案


推荐阅读