更新 Google 表单选择信息

Update Google Form Choices Info

我们想制作一个 Google 表单,其中有从 sheet (Sheet1) 的 F 列中拉出的下拉选项,从第 3 行开始往下。但是,F 列中有公式,特别是:=IF(D$="","", CONCATENATE(C$," - ",D$)),因此一些单元格显示为空白,而其他单元格显示文本.

我们在下面尝试使用的代码不起作用。关于如何通过从 F 列中提取选择但当然忽略空白单元格来完成这项工作的任何帮助?

var form = FormApp.openById('1Hg4TvEZUnzIMZI_andbwHQ3jtaIBLOZsrTkgjSwVcAY')
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');

const current = sheet.getRange(3,6,sheet.getLastRow()-1,6).getValues()
var range = sheet.getDataRange();
 
 var rangeList = current.map(function (row, i) {
 
 for (var i=rangeList; i<range.length; i++) { 
  if (row[5] == "") return;
  var matched = row[5];

  const Question = form.getItemById ("620176576")
  Question.asListItem().setChoiceValues(matched)
 }
 })
}

您必须使用 filter 来仅获取不为空的值。

试试下面的示例脚本:-

const form = FormApp.openById('1Hg4TvEZUnzIMZI_andbwHQ3jtaIBLOZsrTkgjSwVcAY')

const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1')

const current = sheet.getRange(3,6,sheet.getLastRow()-3).getValues().flat().filter(r=> r)  //filtering out blank values

const Question = form.getItemById("620176576")

Question.asListItem().setChoiceValues(current)

参考:

filter()