我有一个谷歌脚本来构建谷歌表单。该脚本使用包含问题和相应选项的电子表格填写表单。
表格中显示的问题需要定期更新。
我希望通过更改电子表格中的问题来更新表单中的问题,如下所示:
- I use
onOpen()
对于脚本,以便每次访问表单时,脚本都会重建最新的表单。
但是,目前每次我运行脚本时,都会将一个新问题添加到表单中,并且以前过时的问题仍然保留在表单上。
我需要使用脚本编辑表单上的现有问题以更新它以显示最新问题。
我找不到使用谷歌脚本编辑现有表单问题的方法。
有人知道怎么做吗?
问题和选项会定期在电子表格中更新。
我希望脚本能够自动编辑问题。
我所有试图找到一个能够编辑表单上已有问题的功能的尝试都徒劳无功!
(PS:我发现的所有功能都能够创建新问题及其选项/但无法编辑现有的表单问题/选项)
为了更新现有项目(问题),代码必须首先通过项目类型获取该项目,并且有许多不同的方法可以通过项目类型获取项目。
每种类型的问题都有不同的方法。问题类型有:
- CHECKBOX
- DATE
- DATETIME
- DURATION
- GRID
- LIST
- 多项选择
- PARAGRAPH_TEXT
- SCALE
- TEXT
- TIME
为了更新现有项目,代码必须首先通过项目类型获取该项目。这里有些例子:
- asCheckboxItem()
- asDateItem()
- asListItem()
- Etc
例如:
var myCheckBoxItem = FormApp.openById(id).getItemById(id).asCheckboxItem();
一旦代码获得了一个项目as正确的项目,您可以按照最初创建它的方式进行更改。
function editFormItem() {
var form = FormApp.getActiveForm();
var allItems = form.getItems();
var i,
L=0,
thisItem,
thisItemType,
myCheckBoxItem;
L = allItems.length;
for (i=0;i<L;i++) {
thisItem = allItems[i];
thisItemType = thisItem.getType();
//Logger.log('thisItemType: ' + thisItemType);
if (thisItemType===FormApp.ItemType.CHECKBOX) {
myCheckBoxItem = thisItem.asCheckboxItem();
myCheckBoxItem.setChoiceValues(values)
};
};
};
上面的脚本并不完整。您需要以某种方式将哪些项目与新的更改相匹配。如果您的所有表单问题都是相同的项目类型,则您无需测试项目类型是什么。
返回的项目类型有 3 种getItems()
这些不是问题项。他们是:
因此,如果您的表单中有这 3 项中的任何一项,您应该检查项目类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)