Google Sheet: вставьте отметку времени в указанных c строках при редактировании в определенном c диапазоне - PullRequest
0 голосов
/ 02 апреля 2020

Поскольку у меня мало сценариев, но я действительно должен его использовать (я не нашел другого решения), я хотел бы попросить вас о помощи с отметкой времени. Я ищу помощь с функцией onEdit, которая позволила бы мне добавить отметку времени в указанном c столбце (S) в каждой строке при редактировании указанных c диапазонов F4: Q4, F5: Q5. Самое важное, что я хотел бы избежать нескольких строк (потому что это строки заголовка, и я не хочу добавлять метку времени при изменении строк заголовка)

Часть этого работает с кодом ниже, но там не включен механизм редактирования, только указанный диапазон c (любое изменение во всей строке замечено как модификация), а также нет ничего для пропуска строк заголовка

function onEdit(e) {
  // Your sheet params
  var sheetName = "Sklad";
  var dateModifiedColumnIndex = 4;
  var dateModifiedColumnLetter = 'S';

  var range = e.range; // range just edited
  var sheet = range.getSheet();
  if (sheet.getName() !== sheetName) {
    return;
  }

  // If the column isn't our modified date column
  if (range.getColumn() != dateModifiedColumnIndex) { 
    var row = range.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-08:00", "dd/MM/yy, hh:mm:ss");
    var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
    dateModifiedRange.setValue(time);
  };
 };

Буду очень признателен за ваш помощь, С уважением

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы можете добавить количество строк заголовка как часть вашей второй if()

Это изменение не добавит метку времени в первых 4 строках, если они отредактированы.

if (range.getColumn() != dateModifiedColumnIndex && range.getRow() > 4) {
0 голосов
/ 02 апреля 2020

Спасибо @ Джеймс

Это работает для меня как

function onEdit(e) {
  // Your sheet params
  var sheetName = "Sklad";
  var dateModifiedColumnIndex = 3;
  var dateModifiedColumnLetter = 'S';

  var range = e.range; // range just edited
  var sheet = range.getSheet();
  if (sheet.getName() !== sheetName) {
    return;
  }

  // If the column isn't our modified date column
  if (range.getColumn() != dateModifiedColumnIndex && range.getRow() > 3 &&  range.getRow() != 8 &&  range.getRow() != 15 &&  range.getRow() != 32 &&  range.getRow() < 49) { 
    var row = range.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT", "dd-MM-yyyy");
    var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
    dateModifiedRange.setValue(time);
  };
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...