我的问题是关于与用户共享的Google电子表格

时间:2019-05-22 05:32:23

标签: google-apps-script google-sheets spreadsheet

我有一个Google电子表格与他人共享。我的工作表名称为“ OrderList”。我正在寻找一个脚本,该脚本可捕获用户的电子邮件地址并在用户编辑工作表时输入到另一个单元格中。我已经编写了以下代码,但是只返回工作表所有者的gmail地址。

Function.identity()

1 个答案:

答案 0 :(得分:0)

由于您正在运行此onEdit(e),因此可以使用Event Objects,它们非常适合捕获您想要获得的数据。不过,您需要为项目设置一个onEdit触发器以捕获电子邮件地址。下面的代码应该可以达到您的期望。

var COLUMNTOCHECK1 = 5;
var COLUMNTOCHECK2 = 6;

var DATETIMELOCATION1 = [0,2];
var DATETIMELOCATION2 = [0,3];

var SHEETNAME = 'OrderList'

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  if( sheet.getSheetName() == SHEETNAME ) { 
    var selectedCell = ss.getActiveCell();

    if( selectedCell.getColumn() == COLUMNTOCHECK1) { 
      var email = e.user.getEmail();

      var dateTimeCell = 
          selectedCell.offset(DATETIMELOCATION1[0],DATETIMELOCATION1[1]);
      dateTimeCell.setValue(new Date());
      var dateTimeCell1 = 
          selectedCell.offset(DATETIMELOCATION2[0],DATETIMELOCATION2[1]);
      dateTimeCell1.setValue(email);
    }
    if( selectedCell.getColumn() == COLUMNTOCHECK2) { 
      var dateTimeCell = selectedCell.offset(DATETIMELOCATION2[0],DATETIMELOCATION2[1]);
      dateTimeCell.setValue(new Date());
    }

  }
}

如您所见,我将您的var email更改为使用事件对象来捕获正在编辑电子表格的用户的电子邮件地址:

var email = e.user.getEmail();