编辑时将动态单元格的值复制到另一张图纸



在第一张工作表中进行编辑后,我正试图将动态单元格的值复制到另一张工作表上的特定单元格中。

示例:每当单元格A5、B3和C2在工作表"工作"上编辑时,应采用单元格B1的当前值,并将其复制到工作表"概述"上的单元格C5。

这是我迄今为止的代码,但不知何故它不起作用。我在这里错过了什么?

function onEdit2() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "work") {
var r =s.getActiveCell() ;
if(r.getCell('A5') || r.getCell('B3') || r.getCell('C2') {
var b =  s.getCell('B1') ;
var uo = SpreadsheetApp.getSheet('overview')
b.copyTo(uo.getCell('C5'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
}
}
}
  • 首先,onEdit2不能用作onEdit触发器,除非它是可安装的。因此,我建议onEdit,这样您就不必自己创建触发器。

  • 最佳的方法是使用事件处理程序e,它将为您提供所需的有关所编辑单元格的相关信息。

我还使用includes检查编辑的单元格是否是单元格列表的一部分,从而使您的代码更干净。

function onEdit(e) {
const as = e.source.getActiveSheet();
const ts = e.source.getSheetByName("overview");
const cell = e.range.getA1Notation();
const triggerCells = ["A5","B3","C2"];

if (as.getName() == "work" && triggerCells.includes(cell)){
let b = as.getRange("B1").getValue();
ts.getRange("C5").setValue(b);
}
}

最新更新