使用Google表单,需要脚本每天关闭和打开表单,并每周清除一次

时间:2014-11-24 16:34:34

标签: forms google-apps-script

我需要:

将表单设置为"不接受回复"每个工作日上午7:16 然后在每个工作日的早上5:30将表单设置为“接受回复” 在周五下午2:00清除表单和表单电子表格中的所有回复

我没有编写脚本的经验。这是针对公立高中的教师签到表。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

很遗憾,StackOverflow不会为您编写代码,因此您无法获得可以复制/粘贴并开始工作的答案。社区将帮助您解决您在代码中遇到的任何特定障碍(如果可以的话)。

但是,您可以使用Form Service来实现这一目标,特别是' .setAcceptingResponses()'方法。您还需要使用&{39; Spreadsheet service' .clear() time triggers。清空工作表的方法。

您会发现{{3}}是设置表单何时变为活动状态和非活动状态的最简单方法,但是,您已经提到了非常具体的时间,这需要再次脱机并再次联机(上午7:16和上午5:30,但仅限于工作日,下午2点在星期五清除工作表),但Google Apps脚本时间触发器无法设置为分钟(请注意触发器的说明时间随机化)。

另一种方法是编写一个检查时间的函数,让该函数每分钟运行一次,如果时间=星期五下午2点,则清除表格等。

答案 1 :(得分:0)

您是否已通过New Visions Cloud Lab检查了formLimiter? http://cloudlab.newvisions.org/add-ons/formlimiter

描述如下: formLimiter会自动将Google表单设置为在特定日期和时间或电子表格单元格包含指定值后,在最大响应数量后停止接受响应。

非常适合有时间限制的作业,有限席位的活动注册或其他先到先得的注册方案。

答案 2 :(得分:0)

我能够编写一个简短的脚本并设置触发器,我将表单命名为“播放”

enter image description here

脚本如下:

function limitDays() {
  var form = FormApp.getActiveForm();
  var lastDay = 21;
  var currDate = new Date();
  var dayOfMonth = currDate.getDate();
  if (dayOfMonth > lastDay) {
    form.setAcceptingResponses(false);
  } else {
    form.setAcceptingResponses(true);
  }
}