Google Apps Script - Настройка строки для завершения только после того, как она прошла через цикл - PullRequest
0 голосов
/ 04 марта 2020

У меня есть Google Apps Script, который вводит события в мой календарь Google из электронной таблицы. Кто-нибудь знает, как заставить скрипт установить цвет фона строки на зеленый, а значение последнего столбца на «завершить», только если он прошел через l oop?

В настоящее время у меня есть только установка полного диапазона на эти параметры, но хотели бы предотвратить включение определенных строк, если последний столбец равен «Неверный».

function inputEvents() {

  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var calendarId = spreadsheet.getRange("B1").getValue();
  var calendar = CalendarApp.getCalendarById(calendarId)
  var lr = spreadsheet.getLastRow();
  var count = spreadsheet.getRange("A3:AF"+lr+"").getValues();

  for (x=0; x<count.length; x++) {

    var events = count[x]; 

    var name = events[2];
    var phone = events[3];
    var email = events[4];
    var title = events[5];
    var startTime = events[6];
    var endTime = events[7];
    var description = events[8];
    var location = events[9];
    var eventId = events[31];
    var contactHeader = "CONTACT:";
    var descriptionHeader = "DESCRIPTION:";
    var complete = "Complete";
    var invalid = "Invalid";

    var info = 
    contactHeader.bold() + "\n" 
    + name + "\n" 
    + phone + "\n" 
    + email + "\n" 
    + "\n" + descriptionHeader.bold() + "\n" 
    + description;

    var options = {
      'guests' : email,
      'description': info,
      'sendInvites': 'True',
      'location': location,
       }

    if (eventId != complete && eventId != invalid){
      calendar.createEvent(title, startTime, endTime, options);
      spreadsheet.getRange("AF3:AF"+lr+"").activate().setValue('Complete');
      spreadsheet.getRange("A3:AF"+lr+"").activate().setBackground('#d9ead3');   
    }
  }  
}

1 Ответ

0 голосов
/ 06 марта 2020

Вы используете методы setValue и setBackground для всего диапазона, вам нужно применять их только к интересующему диапазону, попробуйте установить переменную currentRow и изменить диапазон, который вы хотите получить внутри вашего if заявления, как это:

var currentRow = 3 + x;
if (eventId != complete && eventId != invalid){
  calendar.createEvent(title, startTime, endTime, options);
  spreadsheet.getRange("AF" + currentRow).setValue('Complete');
  spreadsheet.getRange("A"+ currentRow + ":AF" + currentRow).setBackground('#d9ead3');   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...