我有一个适用于GOogle表格的脚本,该脚本几乎可以完美运行。我只需要添加一个内容: 要将登录的用户添加到单元中。 我有一个名为“ GMB说明”的工作表 当用户在第4列的任何单元格行中输入信息时,它将在同一行的第5列中显示日期和时间。没问题。 问题是我希望它也显示该单元格中的登录用户 当前(以下脚本)显示: MM / dd / yyyy-hh:mm a 我希望它显示: MM / dd / yyyy-hh:mm a-登录的用户 我知道它将使用更改该行的用户电子邮件。
摘要:如何将代码添加到以下脚本中,以显示进行该编辑的用户?
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "GMB Descriptions" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
if( r.getColumn() == 4 ) { //checks the column
var nextCell = r.offset(0, 1);
if( nextCell.getValue() === '' ) //is empty?
var time = new Date();
time = Utilities.formatDate(time, "GMT-8", "MM/dd/yy - h:mm a");
nextCell.setValue(time);
};
};
}
答案 0 :(得分:0)
尝试一下:
function onEdit(e) {
var rg=e.range;
var sh=rg.getSheet();
var name=sh.getName();
if( name=="GMB Descriptions") {
if( rg.columnStart==4) {
var nextCell = rg.offset(0, 1);
if( nextCell.getValue()=='') {
var dt=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yy - h:mm a");
nextCell.setValue(Utilities.formatString('%s\n%s',dt,Session.getActiveUser().getEmail()));
}
}
}
}
答案 1 :(得分:0)
修改后(略有减少)的脚本如下:
function onEdit(e) {
var rg = e.range;
if (rg.getSheet().getName() == "GMB Descriptions" && rg.columnStart == 4) {
var nextCell = rg.offset(0, 1);
if (nextCell.getValue() == '') {
var dt = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy - h:mm a - ");
var userMail = e.user.getEmail();
nextCell.setValue(dt + userMail);
}
}
}
感谢Cooper提供的 Utilities 提示,它可以正常工作。我们使用e.user.getEmail()
假设没有安全问题(根据问询者的意见)。在为我测试时,它可以按预期工作。