0

したがって、次のスクリプトは、選択した範囲にカレンダーのイベントがない場合に正常に機能します。これが一度実行されると、すべてのイベントが正しく投稿されます。スケジュールに変更があり、同じ範囲がスクリプトで実行された場合、次のエラーがスローされます。カレンダーエラーではなく、なぜそのエラーなのか少し戸惑っています。カレンダーを手動で消去し、スクリプトを再実行すると、正しく投稿されます。

TypeError: undefined からプロパティ "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 に答える