我可以使用谷歌应用程序脚本使谷歌表单显示谷歌表单中的随机文本吗



假设我在谷歌表单中有一个1000只动物的列表(例如,狗、猫、牛、…、长颈鹿(。我希望谷歌表格在每次受访者打开表格时随机选择一只这样的动物。

例如,你见过__________吗?

在这里,每个受访者的空白都会有所不同(除非他们足够幸运,能够随机获得匹配的动物(。

我目前有从谷歌表单中随机选择动物的代码,但我不知道如何为每个受访者随机选择动物,因为onOpen((函数不能为每个受访者触发,而只能在所有者打开表单时触发。

function onOpen(e){
var animals = worksheet.getRange(2, 1, worksheet.getLastRow()-1, 1)
.getValues()
.map(function(o){ return o[0]})
.filter(function(o){return o !== ""});
//Logger.log(animals)
// get random animal
var animal = animals[Math.floor(Math.random()*animals.length)];
Logger.log(animal);
var id = getBlockIdFromTitle()
Logger.log(id) 
if (id !== -1){
updateLink(id, animal)
}
}

任何关于如何更改我的代码或使用完全不同的方法来获得相同结果的建议都将不胜感激。谢谢

使用可安装的onFormSubmit触发器而不是onOpen触发器

这将允许您在受访者提交表格后更新您的表格问题。

样品:

function onFormSubmit(e){
var animals = worksheet.getRange(2, 1, worksheet.getLastRow()-1, 1)
.getValues()
.map(function(o){ return o[0]})
.filter(function(o){return o !== ""});
//Logger.log(animals)
// get random animal
var animal = animals[Math.floor(Math.random()*animals.length)];
FormApp.openById("XXX").getItems()[0].asTextItem().setTitle("Have you ever seen a " + animal + "?");
}
}

注意:

  • 由于问题只会在提交表格时更新,在前一位受访者完成提交之前打开表格的受访者将不会看到不同版本的表格。

  • 然而,目前没有其他选项可以动态更改每个受访者的问题内容。

  • 如果这对你有帮助的话,可以选择打乱问题顺序,并将答案选项分配给不同的受访者。

最新更新