更新行时获取电子邮件用户值

Get email user value when update row

我和我的团队一起制作了电子表格,当他们更新行(基于他们使用的帐户)时,我如何(自动)获取电子邮件用户值?

所以每次他们更新“任务”列时,“电子邮件”列都会自动更新。就像下面的 table spreadsheet

如果用户来自同一组织(因此安全策略允许访问用户的身份),您只需设置 Apps 脚本 onEdit trigger that will use getActiveUser or getEffectiveUser 即可检索用户电子邮件。

为此,通过 Tools > Script editor 打开脚本编辑器并添加如下所示的 onEdit 函数,它将执行以下操作:

  • 使用 event object 获取有关已编辑单元格的信息(sheet、行、列。
  • 检查单元格是否对应于任务列,是正确的sheet而不是header行。
  • 如果对应任务栏,用getActiveUser获取用户邮箱,用Range.setValue将邮箱地址写入邮箱栏
  • 注意:在下面的示例中,电子邮件和任务列分别设置为 AB,sheet 名称设置为 Sheet1。请根据您的需要更改这些。

代码示例:

function onEdit(e) {
  const range = e.range;
  const rowIndex = range.getRow();
  const colIndex = range.getColumn();
  const sheet = range.getSheet();
  const SHEET_NAME = "Sheet1"; // Sheet name you want to check
  const EMAIL_COLUMN = 1; // Column index where emails are written
  const TASK_COLUMN = 2; // Column index where tasks are written
  if (colIndex === TASK_COLUMN && rowIndex > 1 && sheet.getName() === SHEET_NAME) {
    const userEmail = Session.getActiveUser().getEmail();
    sheet.getRange(rowIndex, EMAIL_COLUMN).setValue(userEmail);
  }
}