昨天講完了事件觸發條件,你可能會問...
Q: 那我可以「定時」執行某個函式嗎?
A: 當然可以,這時候你就需要「時間導向的觸發條件」!
除了事件導向的觸發條件,App Scripts 也有提供時間導向的觸發條件
先介紹如何用程式完成時間的觸發:
情境:
每分鐘在 google sheet 新的一列更新上當前時間
首先我們需要兩個 function:
就 Follow 以下步驟一起來建立一個 Time Trigger 吧!
1 . 首先先寫出我們需要的做的事情 addTimeAtLastRow()
/** 取得工作表最後一列空的資料格並填上時間 **/
function addTimeAtLastRow(){
// 取得當前工作表
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 取得有資料的最後一列再加一列
var numRows = sheet.getLastRow() +1;
// get current time
var now = new Date();
// 轉型並以 --:-- AM/PM 格式顯示。 e.g. "15:25 PM"
var currentTime = now.toLocaleTimeString();
// 填寫進入到對應的儲存格
sheet.getRange(numRows, 1).setValue(currentTime);
}
Note: 更多詳細 google sheet 的語法後面再介紹
2. 接下來就是建立時間觸發器 Time Trigger !
/** 建立每分鐘的觸發器 time trigger */
function createTimeDrivenTriggers() {
ScriptApp.newTrigger("addTimeAtLastRow")
.timeBased()
.everyMinutes(1) // Trigger every 1 min.
.create();
}
Time Trigger 不只可以用分鐘計, 也可以用小時、天,甚至也可以指定日期時分等等。
更多詳細用法請參考官方 API 文件 ClockTriggerBuilder 以及 透過程式輔助方式管理觸發條件
3. 還沒接束!要記得「執行」剛建立好的 Time Trigger!
4. 到 選單>觸發條件,確認有無新增到此觸發條件
5. 結果
Q:好懶喔~一定要打這麼多程式嗎,沒有更簡單的方法嗎
A:眼尖的朋友們應該早就發現了,觸發條件這個頁面就是為你這個懶人設計的!點右下的「+新增觸發條件」就可以新增啦!!
Event Trigger
Time Trigger
恭喜你學會了自動化的重要元素之一 - 觸發條件啦!!!
接下來我們就可以進行第一個實作拉 - Google form 表單自動化寄出信件