修改Google Apps Script列引用:将返回B列改为返回G列
修改后的Google Apps Script代码
只需要调整两处代码即可实现需求:
- 将获取Sheet2范围的代码从
A2:B改为A2:G - 在
reduce方法的解构中,提取A列(匹配键)和G列(目标值),并将G列值存入对象
修改后的完整代码如下:
function onEdit(e) { const sheetName = "Sheet3"; // 你的表格中的工作表名称 const { range, value, source } = e; const sheet = range.getSheet(); if (sheet.getSheetName() != sheetName || range.getA1Notation() != "A1" || value != "Refresh") return; const sheet1 = source.getSheetByName("Sheet1"); // 你的表格中的工作表名称 const sheet2 = source.getSheetByName("Sheet2"); // 你的表格中的工作表名称 const range1 = sheet1.getRange("A2:B" + sheet1.getLastRow()); // 修改此处:范围改为A2:G,解构提取A列和G列,将G列值存入对象 const obj = sheet2.getRange("A2:G" + sheet2.getLastRow()).getValues().reduce((o, [a, , , , , , g]) => (o[a] = g, o), {}); const values = range1.getValues().map(([a, b]) => { const temp = obj[a.split("*")[0]]; return [temp && !b.toString() ? temp : null]; }); range1.offset(0, 2, values.length, 1).setValues(values); range.setValue(null); }
关键修改说明
- 原代码中
[a, b]是解构A列和B列的值,现在改为[a, , , , , , g],跳过B到F列,直接提取G列的值 - 对应将
o[a] = b改为o[a] = g,确保对象中存储的是G列的对应值
内容的提问来源于stack exchange,提问作者Essem
相关产品推荐
相关产品推荐

