这是一个“更改日志”功能,它添加一个新行来描述“编辑日志”工作表中的每个编辑。我怎样才能标注编辑行中第一列的值?
function onEdit(e) {
var timestamp = new Date();
var user = e.user;
var cell = e.range.getA1Notation();
var oldValue = e.oldValue;
var newValue = e.value;
var sheetName = e.source.getActiveSheet().getName();
var logSheet = e.source.getSheetByName("Edit Log");
if (logSheet == null) {
logSheet = e.source.insertSheet("Edit Log");
logSheet.appendRow(["Timestamp", "User", "Cell", "Old Value", "New Value", "Sheet Name"]);
}
// only paste changes if they come from the sheet Master Census
if (sheetName == "Master Census") {
logSheet.appendRow([timestamp, user, cell, oldValue, newValue, sheetName]);
} else {
return
}
}
我想做:
var 成员 = ...
function onEdit(e) {
const sh = e.range.getSheet();
if (sh.getName() == "Master Census") {
var lsh = e.source.getSheetByName("Edit Log");
if (!lsh) {
lsh = e.source.insertSheet("Edit Log");
lsh.appendRow(["Timestamp", "User", "Cell", "Old Value", "New Value", "First Col of Edited Row"]);
}
lsh.getRange(lsh.getLastRow() + 1, 1, 1, 6).setValues([[new Date(), e.user, e.range.getA1Notation(), e.oldValue, e.value, sh.getRange(e.range.rowStart, 1).getValue()]]);
}
}
或者您可以使用
消除 getA1Notation 函数function onEdit(e) {
const sh = e.range.getSheet();
if (sh.getName() == "Master Census") {
var lsh = e.source.getSheetByName("Edit Log");
if (!lsh) {
lsh = e.source.insertSheet("Edit Log");
lsh.appendRow(["Timestamp", "User", "row", "col", "Old Value", "New Value", "First Col of Edited Row"]);
}
lsh.getRange(lsh.getLastRow() + 1, 1, 1, 7).setValues([[new Date(), e.user, e.range.rowStart,e.range.columnStart, e.oldValue, e.value, sh.getRange(e.range.rowStart, 1).getValue()]]);
}
}