将第一个单元格的值粘贴到编辑的行中

问题描述 投票:0回答:1

这是一个“更改日志”功能,它添加一个新行来描述“编辑日志”工作表中的每个编辑。我怎样才能标注编辑行中第一列的值?

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 成员 = ...

google-sheets google-apps-script
1个回答
0
投票
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()]]);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.