我基本上想知道为什么以下 Google Scripts 脚本不能双向工作。 如果我编辑 NW!P2,则 History!R2 会正确更新,而如果我编辑 History!R2,NW!P2 则不关心。
function onEdit(e) {
if (!e.source) {
console.error("Error: e.source is undefined");
return;
}
var nwSheet = e.source.getSheetByName('NW'); // Set the name of the NW sheet
var historySheet = e.source.getSheetByName('History'); // Set the name of the History sheet
var range = e.range;
var value = range.getValue();
var sheetName = nwSheet.getName();
// Update History!R2 when NW!P2 is edited
if (range.getA1Notation() == 'P2' && sheetName == 'NW') {
historySheet.getRange('R2').setValue(value);
}
// Update NW!P2 when History!R2 is edited
if (range.getA1Notation() == 'R2' && sheetName == 'History') {
nwSheet.getRange('P2').setValue(value);
}
}
在您的显示脚本中,
var sheetName = nwSheet.getName();
始终是来自NW
的var nwSheet = e.source.getSheetByName('NW');
的工作表名称。我认为这可能是您当前问题的原因,如果您想消除此问题,可以进行以下修改吗?
var sheetName = nwSheet.getName();
var sheetName = range.getSheet().getName();
或
var sheetName = e.source.getActiveSheet().getName();
sheetName
用作编辑单元格的工作表。