Google 文件真是越來越強悍了,
除了能像Microsoft Offiec那樣寫VBA的指令碼外,還可以加入排程做週期性的工作
事情是這樣的...
使用了半年左右的Google 試算表,協作的功能是挺方便的,
可以隨時看到大家編輯的結果,
但因為試算表每週都要自己手動去更新日期及清空某些儲存格的舊資料,就有些不方便了
果然不負眾望的Google,這次也不辜負大家的期許,
工具可真是包山包海
(按people moutain people sea的邏輯,大概也可以翻作 package moutain package sea吧~~XDD, 雖然這個"包"字是動詞,這裡變為名詞的包也蠻適合的...真是太自我感覺良好了
)
Google提供了 Google Apps Script
https://developers.google.com/apps-script/
裡面的指令碼編輯器還有提供排程可以使用~~真是太讚拉
以下就來說明一下如何使用
---------------------------------------------------------------------------------------------------------------
情境:使用排程去修改Google 試算表中特定欄位的值
1. 先建立一份Google試算表,然後我想將A1儲存格寫入一些文字,如"你們要將一切的憂慮卸給神,因為祂顧念你們。"
2. 點選 工具 > 指令碼編輯器 > 在編輯窗格中輸入如下函式,長的有點像 JavaScript
function test() {
SpreadsheetApp.getActiveSheet().getRange("a1").setValue("你們要將一切的憂慮卸給神,因為祂顧念你們。");
//getRange()裡面的a1也可寫A1,大小寫不限; 如果要取合併儲存格的話,如a1~b2四格併一格,getRange可輸入getRange("a1:b2")
}
3. 再來檢查一下有無bug: 點選 選取函式(下拉選單) > 選test(即剛才打的函數名稱) > 點選左邊那隻蟲(除錯) > 沒問題後再按蟲左邊的執行鈕 > 回到剛建立的試算表頁籤觀看結果
4. 若想產生如JavaScript alert 的訊息視窗,可用以下的method
function test() {
Browser.msgBox(SpreadsheetApp.getActiveSheet().getRange("a1").getValue());
}
想抓出今天的日期的話也OK
function test() {
SpreadsheetApp.getActiveSheet().getRange("a1").setValue(Utilities.formatDate(new Date(), "GMT+8", "yyyy-MM-dd")); //GMT+8是台北時間
}
PS.要產生上面的日期,也可用下面的方法
new Date().getFullYear()+"-"+new Date().getMonth()+"-"+new Date().getDate()
但這個方法很詭異,月份會少一個月,但用new Date()去看時,日期月份卻是正確的,如果大家知道原因的話再分享一下吧~
5.加入排程:回到指令碼編輯器 > 點選 您所有的觸發程序... > 點選 加入新的觸發器 > 在 執行 欄中,選擇test函數 > 活動 欄中,選 時間導向 > 選擇自己要的週期,可先選每分鐘,才不會等那麼久就可看執行結果 > 最右邊的 通知 ,是執行出錯時寄mail通知你錯誤訊息, 一樣可選週期,若不想收報錯的mail就先跳過 > 最後記得按左下角的 儲存
6.回到指令碼編輯器 > 一樣要 儲存(左上的那個磁片icon)
7.最後,因為是排程,還會牽涉到時區問題: 點選左上角 檔案 > 選擇 專案屬性... > 資訊 (第一個頁籤) > 時區 選(GMT+08:00)台北 > 儲存
PS.打這一篇還蠻花時間的..不過一想到也從別人分享的資源獲益,所以也就不吝分享給出來囉~ 大家也多多分享吧! : )