因此,如果日历在所选范围内没有事件,则以下脚本可以正常工作。一旦运行一次,所有事件都会正确发布。假设如果计划发生变化并且通过脚本运行相同的范围,则会引发以下错误。我只是对为什么这个错误而不是日历错误有点困惑。如果您手动清除日历,然后重新运行脚本,它将正确发布。
TypeError:无法从未定义中读取属性“4”。(第 30 行)
代码:
function addCrewsToCalendar() {
var humCalendar = CalendarApp.getCalendarById(ScriptProperties.getProperty('humCalendar'));
var glsCalendar = CalendarApp.getCalendarById(ScriptProperties.getProperty('glsCalendar'));
var range = SpreadsheetApp.getActiveRange().getValues();
for (var i in range){
//Date Params
var startTime = range[i][1];
var endTime = range[i][2];
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(7);
//Houma Air Crew
var humSO = range[i][3];
var humRS1 = range[i][5];
var humRSw = range[i][7];
//Set Houma Calendar
//Post Houma Schedule
humCalendar.createAllDayEventSeries('HUM RS1: '+humRS1, startTime, recurrence);
humCalendar.createAllDayEventSeries('HUM SO: '+humSO, startTime, recurrence);
humCalendar.createAllDayEventSeries('HUM RSw: '+humRSw, startTime, recurrence);
//Galveston Air Crew
var glsSO = range[i][4];
var glsRS1 = range[i][6];
var glsRSw = range[i][8];
//Set Galveston Calendar
//Remove any events so there are no duplicates
var glsEvents = glsCalendar.getEvents(startTime, endTime);
for (var i in glsEvents){
glsEvents[i].deleteEvent();
}
//Post GLS Schedule
glsCalendar.createAllDayEventSeries('GLS RS1: '+glsRS1, startTime, recurrence);
glsCalendar.createAllDayEventSeries('GLS SO: '+glsSO, startTime, recurrence);
glsCalendar.createAllDayEventSeries('GLS RSw: '+glsRSw, startTime, recurrence);
}
}
我确定我错过了一些简单的东西。
提前谢谢。