GoogleSheets-是否可以将用户信息从“显示编辑历史记录”提取到单元格?

时间:2019-10-13 13:22:07

标签: google-apps-script google-sheets

我试图在每一列的文档中记录用户信息,如使用“显示编辑历史记录”选项(通过右键单击单元格)显示的那样。

更具体地说-对于给定的行,如果G列中的单元格最后一次被我修改-B列中的单元格应显示“ Yaniv A”或“ yaniva@emaildomain.com”。当然,这对于其他任何编辑器都应采用相同的方法。 修改G列中与之对应的单元格后,新信息应立即替换B列中的所有旧信息。

1 个答案:

答案 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并填写以下设置:

  • 选择要运行的功能:onEdit
  • 选择应运行哪个部署:标头
  • 选择事件来源:从电子表格中
  • 选择事件类型:编辑时
  • 故障通知设置:如您所愿

保存触发器后,您可以通过修改G列中的单元格来测试功能。请不要犹豫,要求对我的答案或代码本身进行任何澄清。