Вывести текущее время, дату и имя пользователя для ввода данных в любую ячейку для указанного столбца - PullRequest
1 голос
/ 27 октября 2019

Печатает текущее время и дату любой ячейки в столбце A и имя пользователя любой ячейки в столбце B при вводе данных только в любую ячейку в столбце c

Примечание: - начать печать текущего времени,дата и имя пользователя из второй строки - не обновлять текущее время и дату только в столбце A при изменении любой ячейки в столбце c - удаляет текущую дату, время и имя пользователя при удалении данных в любой ячейке в столбце c Explanation

1 Ответ

1 голос
/ 28 октября 2019

Для этого требуется устанавливаемый триггер onEdit (). Я предоставляю функцию onOpen () с методом createMenu для установки триггера onEdit () из меню. Я также предоставил функцию isTrigger, которая проверяет, что она еще не установлена, чтобы у вас не было нескольких триггеров. Поэтому обязательно измените имя функции и удалите старую функцию onEdit (). Старая функция onEdit () не имела разрешения на получение информации о пользователе.

function onInstallableEdit(e) {
  if(e.range.getSheet().getName()=='Sheet188') {
    if(e.range.columnStart==3 && e.range.rowStart>1) {
      if(e.range.offset(0,-2).isBlank()) {
        e.range.offset(0,-2).setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), " HH:mm:ss E MMM dd,yyyy"));
      }
      e.range.offset(0,-1).setValue(Session.getActiveUser().getEmail());
    }
  }else{
    return;
  }
}

function installonEdit() {
  if(!isTrigger('onInstallableEdit')) {
    ScriptApp.newTrigger('onInstallableEdit').forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
  }
}

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for(var i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

function onOpen() {
  SpreadsheetApp.getUi().createMenu('My Menu')
  .addItem('Install On Edit Trigger','installonEdit')
  .addToUi();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...