【问题标题】:Adding name to last edited (google script)将名称添加到最后编辑(谷歌脚本)
【发布时间】:2015-03-03 11:16:53
【问题描述】:

目前我有以下谷歌脚本:

   function onEdit() {
    var s = SpreadsheetApp.getActiveSheet();
    var r = s.getActiveCell();

    if(s.getName()=='Setup BRF'){
      if( r.getColumn() != 2 ) { //checks the column
         var row = r.getRow();
         var time = new Date();
         time = Utilities.formatDate(time, "GMT", "dd-MM-yy' , 'HH:mm:ss");
         SpreadsheetApp.getActiveSheet().getRange('J1').setValue(time);
      };
    };
   };

每次我在名为 Setup BRF 的工作表上编辑内容时,它都会更新 J1 中的时间和日期,以显示上次更新/编辑的时间。

我的问题是是否可以为单元格 K1 添加一个名称,该名称显示谁最后更新了此工作表。我的 javascript 技能为零,因此感谢您提供任何帮助。

【问题讨论】:

标签: javascript google-apps-script google-sheets


【解决方案1】:

您可以使用传递给函数的event object

所以把定义改成

function onEdit(e) {

然后您可以使用e.user 来获取用户

类似的东西

if( r.getColumn() != 2 ) { //checks the column
    var row = r.getRow(),
        time = new Date(),
        user = e.user;

    time = Utilities.formatDate(time, "GMT", "dd-MM-yy' , 'HH:mm:ss");
    SpreadsheetApp.getActiveSheet().getRange('J1').setValue(time);
    SpreadsheetApp.getActiveSheet().getRange('K1').setValue(user);
};

【讨论】:

  • 在我输入的第 9 行出现类型错误:var user = e.user();
  • 不是e.user(),而是e.user,正如盖比所说。但是,无论如何您都会感到失望,因为您的onEdit() 函数无论如何都无法使用其他用户的身份。 (Reference) 当你编辑工作表时你会得到你的 id,但是当其他人编辑时你会得到一个空白字符串。
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2022-11-10
相关资源
最近更新 更多