Google Apps Script onEdit触发时N12值无法粘贴到C25问题求助
谷歌表格脚本问题排查与修复
存在的问题
- 目标单元格定位错误:需求要求将AM13旧值写入C23,但原代码中赋值目标选的是C24,位置不匹配
- 语法错误:
e.source.getA1Notation().getRange('Sheet1!N12')属于无效写法,e.source是电子表格对象,没有getA1Notation()方法,只有单元格范围(Range)对象才支持该方法,这行代码会直接触发执行中断,后续逻辑无法运行 - 赋值逻辑错位:需求要求把N12的值写入C25,但原代码既没有定位到C25作为赋值目标,还错误将N12的范围对象作为赋值接收方,逻辑完全不匹配
修复后代码
function onEdit(e) { // 仅触发编辑AM13单元格的逻辑 if (e.range.getA1Notation() === 'AM13') { const sheet = e.source.getSheetByName('Sheet1'); // 1. 将AM13旧值写入C23 const oldValTarget = sheet.getRange('C23'); oldValTarget.setValue(e.oldValue); // 2. 读取N12的值写入C25 const n12Val = sheet.getRange('N12').getValue(); const c25Target = sheet.getRange('C25'); c25Target.setValue(n12Val); } }
注意事项
- 确保你要操作的工作表名称确实是
Sheet1,如果名称有修改需要同步修改代码里的工作表名参数 - 如果是批量粘贴覆盖AM13的场景,
e.oldValue可能会返回undefined,这种情况需要额外加兼容逻辑处理
内容的提问来源于stack exchange,提问作者Kelvs
相关产品推荐
相关产品推荐

