自动标记对Google表格进行更改的用户名

时间:2015-07-27 20:29:13

标签: google-sheets spreadsheet

我有一张Google表格,我想自动将上次更改的人的用户名标记为特定行。我目前有这个代码工作,因为我喜欢与时间做同样的功能:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() != 2 ) { //checks the column
    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-07:00", "yyyy-MM-dd, hh:mm:ss");
    SpreadsheetApp.getActiveSheet().getRange('G' + row.toString()).setValue(time);
  };
 };

假设这与我对用户名的要求有些接近,我尝试使用它:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() != 2 ) { //checks the column
    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-07:00", "yyyy-MM-dd, hh:mm:ss");
    SpreadsheetApp.getActiveSheet().getRange('H' + row.toString()).setValue(Session.getActiveUser);
  };
 };

但是这会发出一些明显被打破的奇怪命令。

我该怎么做?

这是我正在处理的工作表:https://docs.google.com/spreadsheets/d/1VifU8AJWuPn53-_JCQKbPTjHxKDArkyG0G7zt1wzmPg/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

这是你想要做的吗?

function onEdit(e) {
  var r = e.range;
  if( r.getColumn() != 2 ) { //checks the column
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-07:00", "yyyy-MM-dd, hh:mm:ss");
    SpreadsheetApp.getActiveSheet().getRange(r.getRow(),8).setValue(Session.getActiveUser().getEmail());
  }
 }