@Gexoman

Изменение в заданную ячейку при смене статуса строки таблицы. Возможно?

Помогите с определением и написанием скрипта, которая будет автоматически выводить последнее изменение в заданную ячейку каждой строки таблицы.
Ниже предоставлен скрипт на проставление автоматической даты в определённые столбцы. Дальше не могу придумать рабочую логическую цепочку.

//Автоматически проставляет фактическую дату в столбец «ДАТА» рядом с столбцом «операция».
function onEdit(e) {

  var ArNumCol = [15, 16, 17, 18, 20, 22, 23, 23, 25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, ] //Массив для поиска значений - добавляем сюда столбцы для перебора
  var IsFound = false
  var Founded = 0


  var str = e.range.getRow();
  var stolb = e.range.getColumn();

  // для захода в цикл For
  for (var k = 0; k < ArNumCol.length; k += 1) {
    if (stolb == ArNumCol[k]) {
      Founded = 1
    }
  }
  if (Founded == 1)
    for (var i = 14; i < 77; i += 1) {
      if (stolb == i && e.source.getActiveSheet().getName() == "План") {
        var j = 0


        if (stolb == 16 || stolb == 21 || stolb == 26 || stolb == 31 || stolb == 36 || stolb == 41 || stolb == 46 || stolb == 51 || stolb == 56 || stolb == 61 || stolb == 66 || stolb == 71 || stolb == 76)
          j = 3
        else if (stolb == 17 || stolb == 22 || stolb == 27 || stolb == 32 || stolb == 37 || stolb == 42 || stolb == 47 || stolb == 52 || stolb == 57 || stolb == 62 || stolb == 67 || stolb == 72 || stolb == 77)
          j = 2
        else if (stolb == 18 || stolb == 23 || stolb == 28 || stolb == 33 || stolb == 38 || stolb == 43 || stolb == 48 || stolb == 53 || stolb == 58 || stolb == 63 || stolb == 68 || stolb == 73 || stolb == 78)
          j = 1
        else
          j = 4

        e.source.getActiveSheet().getRange(str, i + j).setValue(new Date());
      }
    }
  Founded = 0
}

function myFunction() {

}
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
/**
 * Возникает при изменении ячейки
* @param {e} event event-объект https://developers.google.com/apps-script/guides/triggers/events?hl=ru
 * [ ProgrammerForever (c) 2020 ]
 * @return Не возвращает значений
 */
function onEdit(event) {
  var ss = event.source.getActiveSheet();//Текущий лист
  var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
  var row = event.range.getRow();      //Номер строки
  var col = event.range.getColumn();  //Номер столбца
  var newValue = event.value;            //Новое значение
  var oldValue = event.oldValue;        //Старое значение
  var userEmail = event.user.getEmail();//Пользователь(работает только при вручную назначенном триггере)
  
  //Делаем что-то
  if((col>=1)){
    ss.getRange(row,1).setValue(new Date()); //Запись даты редактирования  строки в столбец 1
  };
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы