基于下拉框将谷歌表格指定列数据复制到其他工作表的脚本修复请求
修复谷歌表格脚本:仅复制指定列到目标工作表
原脚本的核心问题:
- 列判断错误:K列对应表格的第11列,原脚本误写为第8列
- 复制范围错误:原代码复制了整行数据,未限定仅复制A、B列
修复后的完整脚本:
function onEdit(event) { // 源工作表:FY23 Prospect Tracker,目标工作表:FY23 Pipeline var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = event.source.getActiveSheet(); var r = event.source.getActiveRange(); // 检查是否是FY23 Prospect Tracker工作表的K列(第11列),且值为"Received" if(s.getName() === "FY23 Prospect Tracker" && r.getColumn() === 11 && r.getValue() === "Received") { var row = r.getRow(); var targetSheet = ss.getSheetByName("FY23 Pipeline"); // 获取目标工作表的下一行起始位置 var targetRow = targetSheet.getLastRow() + 1; // 仅复制当前行的A、B列(第1到第2列) s.getRange(row, 1, 1, 2).copyTo(targetSheet.getRange(targetRow, 1)); } }
关键改动说明:
- 将列判断从
r.getColumn() == 8改为r.getColumn() === 11,匹配K列的实际位置 - 把复制范围从
s.getRange(row, 1, 1, numColumns)改为s.getRange(row, 1, 1, 2),限定只复制A、B两列 - 优化目标行获取逻辑,让代码更清晰直观
内容的提问来源于stack exchange,提问作者Tiffani
相关产品推荐
相关产品推荐

