Используйте индекс массива, чтобы записать значение в другую строку листа
В настоящее время я пытаюсь получить этот фрагмент кода для отправки событий из листа 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++;
}
}