【发布时间】:2014-09-16 14:48:31
【问题描述】:
所以我有一个 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);
}**
【问题讨论】:
-
您是手动编辑工作表还是仅使用您提到的其他脚本?
-
使用其他脚本编辑工作表。
标签: javascript triggers google-apps-script google-sheets google-calendar-api