【发布时间】:2016-12-05 12:12:47
【问题描述】:
我创建了一个脚本以作为基于时间的触发器运行。
- 我想在周末休息和节假日禁用该触发器。
- 理想情况下,我希望它成为我已经拥有的功能的一部分 删除之前提交的表单,这意味着用户在每个假期开始时只需按下一个按钮(删除之前的提交并禁用时间触发器)。
- 如果 下次学生提交表单时,触发器已重新启用 (表示假期已经结束)。
不确定如何使用脚本以这种方式禁用/启用触发器 - 感谢任何建议!
//Menu allowing user to choose to delete previous form submissions
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Clear Out Responses')
.addItem('Clear Form & Responses', 'showAlert')
.addToUi();
}
//Alert box deleting previous form submissions on yes, doing nothing if not
function showAlert() {
var ui = SpreadsheetApp.getUi(); // Same variations.
var result = ui.alert(
'This will clear all previously registered data',
'Are you sure you want to continue?',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (result == ui.Button.YES) {
// User clicked "Yes".
var ui = SpreadsheetApp.getUi();
var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
var lastRow = source.getLastRow()
source.deleteRows(2, lastRow)}
var form, urlForm = SpreadsheetApp.getActiveSpreadsheet().getFormUrl();
if (urlForm) {}
form = FormApp.openByUrl(urlForm);
if (form) form.deleteAllResponses();
}
//Trigger running record-keeping function each night
function dailyTrigger() {
ScriptApp.newTrigger('dailyRecord')
.timeBased()
.atHour(22)
.everyDays(1)
.create();
}
//Record-keeping function, copy/value-pasting record into next clear column
function dailyRecord() {
var ss = SpreadsheetApp.getActive()
.getSheetByName('History'),
lastColumn = ss.getLastColumn(),
colE = ss.getRange("C:C")
.getValues();
ss.getRange(1, lastColumn + 1, colE.length, 1)
.setValues(colE);
}
【问题讨论】:
标签: google-apps-script triggers