Google Forms两个下拉框仅一个可同步更新,求解决方案
解决Google Forms多下拉框同步Sheet选项的问题
问题原因
你的代码只针对**第一个下拉框(formItems[0])**进行更新,所以不管复制多少个同类型的下拉问题,只有排在第一位的会同步Sheet的修改,后面的都不会被处理。调换顺序后原第二个问题变成了第一个,所以它能同步,原第一个问题移到后面就失效了,本质还是代码只处理第一个LIST项。
另外你的代码存在语法错误:FormApp.openById('(Link ID removed here)'; 末尾缺少闭合括号 ),会导致脚本运行失败,需要先补上。
修正后的代码
function updateDropdown() { // 获取表单和工作表 var form = FormApp.openById('(Link ID removed here)'); // 补上缺失的闭合括号 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Choices'); // 获取Sheet中的选项数据 var data = sheet.getRange('A:A').getValues(); var items = data.flat().filter(String); // 获取表单中所有下拉类型的问题 var formItems = form.getItems(FormApp.ItemType.LIST); // 遍历所有下拉问题,逐个更新选项 formItems.forEach(function(listItem) { listItem.asListItem().setChoiceValues(items); }); }
改动说明
- 移除了只处理第一个下拉框的逻辑,改用
forEach循环遍历所有LIST类型的表单问题 - 对每个下拉问题都调用
setChoiceValues(items),确保所有同类型下拉框都同步Sheet中的选项 - 修复了
openById行的语法错误
内容的提问来源于stack exchange,提问作者Mark R
相关产品推荐
相关产品推荐

