0

因此,如果日历在所选范围内没有事件,则以下脚本可以正常工作。一旦运行一次,所有事件都会正确发布。假设如果计划发生变化并且通过脚本运行相同的范围,则会引发以下错误。我只是对为什么这个错误而不是日历错误有点困惑。如果您手动清除日历,然后重新运行脚本,它将正确发布。

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);    

}


}

我确定我错过了一些简单的东西。

提前谢谢。

4

1 回答 1

0

这一行:

var glsSO = range[i][4];

正在访问变量的属性 4。似乎由于某种原因没有定义变量 range[i] 。

于 2012-12-23T04:29:17.363 回答