首页 > 解决方案 > 用于了解单元格 google sheet 的编辑历史的脚本

问题描述

我正在与多人一起处理一个文件,我想做一个脚本,告诉我该人如何修改该单元格以及发生这种情况的时间,我只需要进行最后一次更改的电子邮件用户和此处的时间示例

到目前为止,我得到了这个,这让我得到了电子邮件用户,但没有时间戳。

function history_version() { 
  var thisSS = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheet1 = thisSS.getSheetByName('Data'); 
  var specialCell = sheet1.getRange("A1:A5"); 
  Logger.log(htmlEmail = "Cell " + specialCell.getA1Notation() +  " edited by " + Session.getActiveUser().getEmail())

}

谢谢你的时间

标签: javascriptexcelgoogle-apps-scriptgoogle-sheets

解决方案


回答:

如果您通过onEdit触发器触发函数,而不是从编辑器手动触发,您可以获得实际的编辑日期

function onEdit() {
  var thisSS = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = thisSS.getSheetByName('Data');
  var specialCell = sheet1.getRange("A1:A5");
  var now = new Date();
  Logger.log("Edited by " + Session.getEffectiveUser().getEmail() + " at " + now);
}

笔记:

我使用getEffectiveUser而不是getActiveUser因为后者在这种情况下可能不可用(简单触发器)。另一种选择是安装触发器(如果您要访问需要授权的服务,这将是必要的)。


推荐阅读