我和我的团队有电子表格,当他们更新行(基于他们使用的帐户)时,如何(自动)获取电子邮件用户值?
因此,每次他们更新“任务”列时,“电子邮件”列都会自动更新。就像下表一样电子表格 https://i.stack.imgur.com/lgDhF.png
如果用户来自同一组织(因此安全策略允许访问用户的身份),您只需设置一个 Apps 脚本onEdit https://developers.google.com/apps-script/guides/triggers#onedite将使用的触发器获取活跃用户 https://developers.google.com/apps-script/reference/base/session#getactiveuser or 获取有效用户 https://developers.google.com/apps-script/reference/base/session#geteffectiveuser检索用户电子邮件。
为此,请通过以下方式打开脚本编辑器Tools > Script editor
并添加一个onEdit
类似于下面的函数,它将执行以下操作:
- Use the 事件对象 https://developers.google.com/apps-script/guides/triggers/events#edit获取有关已编辑单元格(工作表、行、列)的信息。
- 检查单元格是否对应任务列、是否在右侧工作表且不是标题行。
- 如果它对应于任务列,则获取用户电子邮件
getActiveUser
并使用范围.setValue https://developers.google.com/apps-script/reference/spreadsheet/range#setValue(Object)将电子邮件地址写入电子邮件列。
-
Note:在下面的示例中,电子邮件和任务列设置为
A
and B
分别,工作表名称设置为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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)