簡體   English   中英

onEdit觸發Google腳本不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM