[英]onEdit trigger google scripts not working
因此,我有一個Google電子表格,該電子表格正在不斷通過名為“ writeToSheet”的腳本進行更新(此方法工作正常)。 這將在電子表格的末尾寫一個新行,其最后一列是日期。
我還有第二個腳本,該腳本具有一個名為“ writeToCal”的功能,該功能從電子表格中此新行中獲取一些數據,並在上述列指定的日期創建一個Google日歷事件。
當我嘗試觸發“ writeToCal”以便在電子表格更新時執行“ writeToCal”時,就會出現問題。 我已經嘗試過簡單的觸發器和可安裝的觸發器,但是似乎都不適合我。 ( https://developers.google.com/apps-script/guides/triggers/installable )
當我從Google電子表格中的腳本管理器運行代碼時,該代碼有效(即,它創建了日歷事件),但是我希望它在每次電子表格更新時自動運行。 由於腳本在運行時可以正常運行,因此我認為這只是觸發問題,但我無法找出問題所在。 任何幫助將非常感激
我的代碼如下,此腳本已綁定到相關電子表格:
**function triggerWhyDoYouCallMeDave() {
var ss = SpreadsheetApp.openById("BlahBlah");
ScriptApp.newTrigger('writeToCal')
.forSpreadsheet(ss)
.onEdit()
.create();
}
function writeToCal(e) {
var ss= SpreadsheetApp.openById("BlahBlah");
var tt = ss.setActiveSheet(ss.getSheets()[0]);
var lastRow = tt.getLastRow();
var lastColumn = tt.getLastColumn();
//Title is from the User and the follow up message
var userCell = tt.getRange(lastRow, 2);
var usr = userCell.getValue();
var followUpCell = tt.getRange(lastRow, 8);
var follUp = followUpCell.getValue();
var target = tt.getRange(lastRow, 6);
var targetName = target.getValue();
var title = (usr+": "+follUp+" with "+targetName);
//Get the date from the follow up date.
var dateCell = tt.getRange(lastRow, 9);
var follUpDate = new Date(dateCell.getValue());
var calendar = CalendarApp.getCalendarById('BlahBlah');
calendar.createAllDayEvent(title, follUpDate);
}**
如果僅使用其他腳本修改了工作表,則無需使用onEdit觸發器,您可以直接從另一個函數直接調用writeToCal()
函數,並在調用之前添加SpredsheetApp.flush()
以確保所有修改均已適當記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.