Обновление указанного столбца с обновлением даты и имени пользователя - PullRequest
0 голосов
/ 08 января 2020

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

До сих пор я получил обновленную дату, чтобы показать для любого столбца (3-17); но я не смог заставить назначенный столбец работать должным образом. Мне также удалось отобразить единственное имя пользователя, но оно не было связано с указанной строкой c.

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

Текущий код:

Update :: (Ошибка: Ошибка типа: Не удается найти функцию setValue в объекте R ##)

function onEdit(e) {
 var s = SpreadsheetApp.getActiveSheet();
 if( s.getName() == "Budget" ) { //checks that we're on the correct sheet
   var r = s.getActiveCell();
   if( r.getColumn() == 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 ) { //checks the column
     var updateCell = 'R'+ r.getRowIndex();
       var time = new Date();
       time = Utilities.formatDate(time, "GMT-8", "MM/dd - HH:mm");
       updateCell.setValue(time);
   };
 };
}

Имя пользователя:

function onEdit(e) {
    e.source.getActiveSheet()
    // Set the cell you want to update with the user.
    .getRange('B1')
    // Update the user (only email is available, and only if security settings allow).
    .setValue(e.user.getEmail() );
}

1 Ответ

0 голосов
/ 08 января 2020

Кажется, есть некоторые проблемы с кодом, которым вы поделились.

  1. Второй оператор if не имеет правильного синтаксиса
  2. setValue ожидает объект диапазона, но задан строка ('R' + r.getRowIndex ())
  3. При использовании двух onEdits (совместно использующих один и тот же триггер) будет работать только один, когда будут выполнены реальные изменения.

Этот сценарий должен выводить время в столбце R и адрес электронной почты редактора в столбце S. Посмотрите, поможет ли это?

function onEdit(e) {
var s = e.source.getActiveSheet();
if (s.getName() == "Budget" && [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17].indexOf(e.range
        .columnStart) > -1) {
    var time = Utilities.formatDate(new Date(), "GMT-8", "MM/dd - HH:mm");
    s.getRange(e.range.rowStart, 18, 1, 2).setValues([
        [time, e.user.email]
    ]);
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...