![](/img/trans.png)
[英]Enable and disable custom google sheet functions using google apps script
[英]programmatically disable / enable Google Apps Script script trigger
我創建了一個腳本作為基於時間的觸發器運行。
不確定如何使用腳本以這種方式禁用/啟用觸發器 - 感謝您的任何建議!
//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);
}
你看過getUserTriggers()
和deleteTrigger
嗎?
getUserTriggers()
您可以確定調用dailyRecord
的觸發器是否已經存在。 它返回一個觸發器列表,您可以使用getHandlerFunction()
檢查每個觸發器調用的函數。deleteTrigger()
您可以刪除給定的觸發器。 例如,如果安裝了用於調用dailyRecord
的觸發器(並從getUserTriggers()
返回到列表中,則您可以使用此函數將其刪除。有了這些方法,你應該可以達到你想要的效果。
無法檢索現有觸發器並重新定義。 例如,已經運行的基於時間的觸發器無法檢索並使用代碼獲得新的運行時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.