如果有人单击“Ay”列复选框,则需要在不同的列单元格中捕获他/她的电子邮件
[
您并不总是能够访问用户,唯一可以在单击上工作的触发器是 onSelectionChange(),这是一个简单的触发器,这意味着它不能执行任何需要权限的操作,而 Session.getActiveUser() 需要https://www.googleapis.com/auth/userinfo.email
。我不认为有一个解决方案可以满足您的要求。
您可以尝试一下这个功能,看看它是否适合您。
function onSelectionChange(e) {
if (e.user) {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Log");//You need to create this
sh.appendRow([new Date(),e.user.email,e.user.nickname])
Logger.log('email: %s', e.user.email);
Logger.log('nickName: %s', e.user.nickname);
}
Logger.log(JSON.stringify(e));
}
自己尝试是没有意义的。
使用可安装的 onedit 函数:
function onInstallableEdit(e) {
//e.source.toast("Entry");//debug
//Logger.log(JSON.stringify(e));//debug
const sh = e.range.getSheet();
if(sh.getName() == "Audit sheet May" && e.range.columnStart == 51 && e.range.rowStart > 1 && e.value == 1 ) {
//e.source.toast('Flag1');//debug
if(e.user) {
//e.range.offset(0,1).setValue(`${e.user.email}\n${new Date()}`);
e.range.offset(0,1,1,2).setValues([[e.user.email,new Date()]]);
}
}
}
function createTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "onInstallableEdit").length == 0) {
ScriptApp.newTrigger("onInstallableEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)