我试图在每一列的文档中记录用户信息,如使用“显示编辑历史记录”选项(通过右键单击单元格)显示的那样。
更具体地说-对于给定的行,如果G列中的单元格最后一次被我修改-B列中的单元格应显示“ Yaniv A”或“ yaniva@emaildomain.com”。当然,这对于其他任何编辑器都应采用相同的方法。 修改G列中与之对应的单元格后,新信息应立即替换B列中的所有旧信息。
答案 0 :(得分:1)
在Apps脚本上,您可以设置一个onEdit
触发器,以检索进行更改的编辑器和单元的用户名;但是您必须记住,在某些情况下,用户名不可检索(主要是如果用户尚未接受脚本作用域),则可以在getActiveUser
文档中详细了解这些情况。>
您可以使用以下功能来实现您的要求。它将使用event object来检查是否在G列上进行了更改,如果是,则将用户的电子邮件(如果不接受范围则为Unknown
)写入。同一行的B列。
function onEdit(e) {
var range = e.range;
var editor = e.user.getEmail();
if (editor == '' || editor == null) {
editor = 'Unknown';
}
if (range.getA1Notation().search('G') != -1) {
range.offset(0, -5).setValue(editor);
};
}
保存此功能后,您将必须创建一个installable trigger。为此,请转到Edit ? Current project's triggers
。之后,点击+ Add Trigger
并填写以下设置:
保存触发器后,您可以通过修改G列中的单元格来测试功能。请不要犹豫,要求对我的答案或代码本身进行任何澄清。