You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求更新方案:每次打开Google Form从50道选择题库随机抽10道

Google Form 随机抽取10道题(50题题库)的最新实现方法

方法一:Google Apps Script 自动化方案(自定义性强)

这是最灵活的实现方式,可适配复杂抽题逻辑:

  1. 准备题库:将50道选择题(题干、A/B/C/D选项)存入Google Sheet,列名设为题干、选项A、选项B、选项C、选项D。
  2. 创建空白表单:新建Google Form,记录表单ID(地址栏中d/和/edit之间的字符串)。
  3. 编写脚本:打开表单右上角的「扩展程序」→「Apps Script」,替换默认代码为以下内容(需修改FORM_ID和SHEET_ID为你的实际ID):
const FORM_ID = "你的表单ID";
const SHEET_ID = "你的题库Sheet ID";
const QUESTION_COUNT = 10;

function loadRandomQuestions() {
  const form = FormApp.openById(FORM_ID);
  // 清空表单现有问题
  const items = form.getItems();
  items.forEach(item => form.deleteItem(item));
  
  // 从Sheet读取题库并随机抽取
  const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("Sheet1");
  const data = sheet.getDataRange().getValues();
  data.shift(); // 移除表头
  
  // 随机排序后取前10道
  const randomQuestions = data.sort(() => Math.random() - 0.5).slice(0, QUESTION_COUNT);
  
  // 将题目添加到表单
  randomQuestions.forEach(question => {
    const title = question[0];
    const options = question.slice(1, 5).filter(opt => opt); // 过滤空选项
    form.addMultipleChoiceItem()
      .setTitle(title)
      .setChoiceValues(options);
  });
}
  1. 设置触发条件:在脚本编辑器的「触发器」页面,添加一个「打开表单时」触发的事件,绑定loadRandomQuestions函数。这样每次用户打开表单,都会自动清空旧题并加载新的10道随机题。

方法二:Google Form 原生问题库功能(零代码)

Google Form已更新原生随机抽题能力,适合快速实现需求:

  1. 导入题库到问题库:
    • 打开目标Google Form,点击「添加问题」旁的下拉箭头,选择「从问题库导入」。
    • 点击「创建问题库」,可手动录入50道选择题,或通过「导入问题」从已有的Google Sheet批量导入。
  2. 设置随机抽题规则:
    • 在表单中插入「问题组」,选择「从问题库添加」,选中你创建的题库。
    • 在问题组设置中,选择「随机选择10个问题」,并勾选「每次用户打开表单时重新随机排列问题」。
  3. 完成配置:保存设置后,每次用户打开表单,都会看到从50道题中随机选出的10道题。

两种方案对比

  • 原生功能:操作简单、无需代码,但仅支持基础抽题逻辑,无法自定义额外规则(如抽题去重记录、用户分组抽题等)。
  • Apps Script方案:完全自定义,可扩展功能(如记录抽题历史、关联用户信息抽题),但需要基础的代码编辑能力。

内容的提问来源于stack exchange,提问作者Math Avengers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:40:24