【发布时间】:2022-11-17 09:33:40
【问题描述】:
我正在寻找创建特定工作表中发生的操作的日志。
此脚本运行良好,但存在一个主要问题:
除了我自己的电子邮件之外,我没有收到“TheUser”的值。是否可以收到其他人的电子邮件?他们以编辑身份登录,使用 gmail。
function onEdit(e) {
var sName = e.source.getActiveSheet().getSheetName();
if(sName !== "Recent_Changes") {
var theUser = Session.getActiveUser().getEmail();
var value;
var mA1 = e.range.getA1Notation().split(":")[0];
var time = new Date();
if(typeof(e.value) == 'string') {
var aCell = e.source.getRange(mA1);
value = aCell.getValue();
var form = "'" + aCell.getFormula();
} else {
value = e.value;
}
var data = [sName, mA1, time, value, form, theUser];
e.source.getSheetByName("Recent_Changes").appendRow(data);
}
}
【问题讨论】:
-
不总是.....
-
这样做的问题是将结果存储在文件中需要花费大量时间。任何类型的文件都需要时间来打开和关闭。您将在每次编辑时使用脚本语言而不是编译语言来执行此操作。它只会减慢一切。
-
@Cooper 感谢 Cooper - 你对其他方法有什么建议吗?版本历史不能满足我的需要 - 我正在探索所有选项,但这是我能想到的最好的
-
你看过活动 API 了吗?
-
您的电子表格是否公开共享并且编辑者仅通过共享链接访问电子表格(任何知道链接的人)?
标签: google-apps-script google-sheets google-signin