更新 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)
参考:
我们想制作一个 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)
参考: