Используйте индекс массива, чтобы записать значение в другую строку листа

В настоящее время я пытаюсь получить этот фрагмент кода для отправки событий из листа Google в календарь Google (благодарность Адаму Макфарленду в этом посте).

Мой лист в настоящее время составляет около 300 строк и растет, поэтому, чтобы ускорить процесс, я установил диапазон для начала в строке 248. Но тогда кажется, что это отбрасывает часть, которая отмечает событие как "выполнено". Он устанавливает значение "В календаре 2" для строк 2, 3, 4 и 5?!?

Простым решением было бы просто снова установить диапазон на весь лист, но я все еще учусь. Я хотел бы узнать, что именно здесь не работает правильно, а также немного подробнее о том, как работает итерация.

//mark as entered, enter ID
sheet.getRange(i+2, 32).setValue('In 2 calendar');

Полный код ниже:

function pushToCalendar() {
  //spreadsheet variables
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow(); 
  var range = sheet.getRange(248,1,lastRow,40);
  var values = range.getValues();   
  var updateRange = sheet.getRange('G1'); 

  var numValues = 0;
  for (var i = 0; i < values.length; i++) {     
    //check to see if name and type are filled out - date is left off because length is "undefined"
    if ((values[i][0].length > 0) && (values[i][2].length > 0)) {
      //check if it's been entered before          
      if (values[i][30] != 'In calendar') {    
        //Declare which calendar ID to use  (IGNORE THIS FOR NOW)                   
        var calendar = CalendarApp.getCalendarById('calendarID')

        // if (values [i][3] != 'Tropical 2450 Pontoon'){
        // var calendar = CalendarApp.getCalendarById('calendarID')

        //create event https://developers.google.com/apps-script/class_calendarapp#createEvent
        var newEventTitle = values[i][3]+'. '+values[i][2]+'. '+values[i][13]
                  +'. '+values[i][5]+'/'+values[i][6]+'/'+values[i][7]
                  +'. '+values[i][18]+' total, '+values[i][25]+' to pay. '+values[i][0];
        // var newEvent = calendar.createEvent('hello', Date[i][1], Date[i][5]);
        var newEvent = calendar.createEvent(newEventTitle, 
                                            //new Date(values[i][6]),
                                            new Date(values[i][32]),
                                            new Date(values[i][33]));
                                            //{guests:'tures.com.au', sendInvites: true});

        //mark as entered, enter ID
        sheet.getRange(i+2, 32).setValue('In 2 calendar');

      } //could edit here with an else statement
    }
    numValues++;
  }
}

0 ответов

Другие вопросы по тегам