Google apps script 谷歌表单:是否可以在加载时更新表单标题?

Google apps script 谷歌表单:是否可以在加载时更新表单标题?,google-apps-script,google-sheets,google-apps,google-forms,Google Apps Script,Google Sheets,Google Apps,Google Forms,我正在寻找一种方法,用谷歌电子表格单元格中的特定数据更新谷歌表单元素的标题。当电子表格中的数据发生变化时,表单元素的标题也会发生变化 这是我正在使用的代码 function readTheSheet() { var ss = SpreadsheetApp.openById("SpreadsheetKey"); var active = SpreadsheetApp.setActiveSpreadsheet(ss); var sheet = SpreadsheetApp.setActi

我正在寻找一种方法,用谷歌电子表格单元格中的特定数据更新谷歌表单元素的标题。当电子表格中的数据发生变化时,表单元素的标题也会发生变化

这是我正在使用的代码

function readTheSheet() {
  var ss = SpreadsheetApp.openById("SpreadsheetKey");
  var active = SpreadsheetApp.setActiveSpreadsheet(ss);
  var sheet = SpreadsheetApp.setActiveSheet(ss.getSheets()[4]);
  var data = ss.getDataRange().getValues();  // Data for pre-fill

  var formUrl = ss.getFormUrl();
  var form = FormApp.openByUrl(formUrl);
  var items = form.getItems();
  var formItem = items[0].asTextItem();

  formItem.setTitle('Aktueller Clankrieg: ' + data[1][0]);

  Logger.log(data[1][0]);
};
这段代码运行良好,只是在有人响应表单时没有更新。根据googledev,onOpen()触发器仅在用户打开表单时运行,而不是在响应表单时运行

有人知道这是否可以实现,以及如何实现吗

如果是,我们将非常感谢您的帮助或指导

提前谢谢你!只有当有人打开表单进行编辑时,才会触发Smite

OnOpen()(

为了解决这个问题,我设置了工作表,以便在使用onEdit()(onChange()也可以)触发器更改相关列/行时编辑表单

如果有人更新了部分数据,然后去午餐/家里吃了一天饭/等等,而其他人在这两者之间使用了表单,那么这就是一个问题。如果你有一个重要的列/行,或者如果它得到了零碎的更新,或者如果你有用户会遵循应该对你有用的说明,这都无关紧要

最后我把它改成了一个手动触发的事件。尽管用户一直忘记使用菜单项,所以我贴了一个“红色大按钮”jpg在工作表上显示了重要的数据,并将脚本与之关联。似乎已经做到了这一点。每当他们更改工作表中处理表单的部分时,他们都会记得点击按钮,表单就会更新

基本上,从工作表中获取更新的数据,然后结合使用:

//code to get the value to update into the form
var Form = FormApp.openById('form id') //to open the form
//more code to get the list of form items and select the right one if you are updating more than one thing
item.getTitle() == 'Item name that you want to update' //That is literally what you typed in that section on the form

如果您需要有关逻辑/语法的更多详细信息,请致电。

查看电子表格onEdit/onChange@Zig:感谢您的评论。这是关于元素的标题,因此在有人添加或更改某些内容之前,更新必须在那里。标题包含要添加到表单字段中的信息。您可以拥有一个Web应用程序,该应用程序可以tes指向访问表单的链接,其中包括预填充字段的url参数。用户将首先进入webapp,然后进入表单。据我所知,当用户进入提交时,您无法更新onLoad。可能是因为以下原因:假设用户输入,表单根据某些条件设置一些字段。然后er被记录,另一个用户输入相同的表单,并且由于条件的反应不同而更改字段。当第一个用户按下“提交”按钮时,数据将不一致,他看到的元素可能不再存在于表单文件的源代码中。OnOpen()仅在有人打开表单进行编辑时才会触发:(