繁体   English   中英

Google 表格 - 在编辑时触发的用户/电子邮件图章仅适用于 OWNER 帐户 - 如何为所有编辑器启用用户/电子邮件图章?

[英]Google sheets - User/Email stamp triggered ON EDIT works only with OWNER account - how to enable user/email stamps for all editors?

我需要一个解决方案,让所有编辑人员在更改工作表后都能留下他们的姓名印章。 我能够想出仅适用于所有者的脚本代码。

我试图通过从编辑器帐户手动运行脚本来授权脚本 - 该应用程序具有授权,但即使它不适用于编辑器。

Norbert Wagner:“但是,从脚本编辑器中授权对我不起作用。但是一旦我在文档中添加了一个菜单并从那里执行了该功能,我就在文档中收到了授权请求。从那时起,onEdit 功能也是如此适用于所有用户。不过,我是作为文档所有者这样做的。” -

也许这是解决方案? 但是如何从文档中运行 onEdit 呢? 简单的编辑不起作用,但是这个菜单怎么样? 有没有办法从文档级别执行所有脚本和强制授权?

function onEdit(e) {

// Your sheet params
var sheetName = "Arkusz1";
var dateModifiedColumnIndex = 3;
var dateModifiedColumnLetter = 'C';

var range = e.range; // range just edited
var sheet = range.getSheet();
if (sheet.getName() !== sheetName) {
 return;
}

// If the column isn't our modified date column
if (range.getColumn() != dateModifiedColumnIndex) { 
var row = range.getRow();
var user = Session.getActiveUser().getEmail();
  user = String(user);
user = user.replace('@gmail.com', '');
var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
dateModifiedRange.setValue(user);

};
};

此功能仅在使用所有者帐户时有效。 即使编辑器从脚本编辑器手动授权脚本 - onEdit 用户标记功能也不会触发。


下面是我用于测试的另一个函数。 当我从编辑器帐户 IT WORKS 手动运行它时 - 它将编辑器的名称保存在 A1 中。

function USERNAME(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0]; // this will assign the first sheet
var cell = sheet.getRange('A1');
var d = new Date();
d.setHours(d.getHours() +1);
var user = Session.getActiveUser().getEmail();
user = String(user);
user = user.replace('@gmail.com', '');
cell.setValue(user);
}

事实上,你必须使用可安装的触发器。

将您的函数 onEdit(e) 重命名为另一个名称,例如 customFunction(e)

然后你使用这个函数设置一个可安装的触发器:

function createTrigger(){
ScriptApp.newTrigger('customFunction')
  .forSpreadsheet(SpreadsheetApp.openById('YOU_SHEET_ID'))
  .onEdit()
  .create();
}

或者您可以通过转到“编辑 >> 当前项目的触发器 >> 单击 + 按钮(右下角)”来手动设置触发器

通过这种方式,无论用户如何,每次有编辑时触发器都会运行。

斯蒂芬妮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM