使用Google Apps Script基于匹配值更新WOL表格技术人员名称
解决Google Sheets匹配替换技术人员名称的问题
嘿,作为Google Apps Script新手,这个需求其实很好实现,我给你准备了带详细注释的代码,你可以直接套用:
完整可运行代码
function updateTechnicianName() { // 获取当前打开的表格文件 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 分别获取两个工作表对象 const wolSheet = ss.getSheetByName('WOL'); const wlSheet = ss.getSheetByName('WL'); // 读取WL表中需要匹配的编号和新的技术人员名称 const targetId = wlSheet.getRange('H1').getValue(); const newTechnician = wlSheet.getRange('B2').getValue(); // 空值校验:如果匹配编号或新名称为空,直接提示并退出 if (!targetId || !newTechnician) { SpreadsheetApp.getUi().alert('请确保WL表的H1和B2单元格都填写了内容!'); return; } // 获取WOL表A列的所有数据(从第1行到最后一行) const idColumnValues = wolSheet.getRange('A:A').getValues(); // 遍历A列,寻找匹配的唯一编号 for (let i = 0; i < idColumnValues.length; i++) { const currentId = idColumnValues[i][0]; // 找到匹配项后,更新对应行的B列值 if (currentId === targetId) { wolSheet.getRange(i + 1, 2).setValue(newTechnician); SpreadsheetApp.getUi().alert(`已成功更新:编号${targetId}对应的技术人员改为${newTechnician}!`); return; // 因为A列是唯一编号,找到后直接退出循环 } } // 遍历完没找到匹配项时的提示 SpreadsheetApp.getUi().alert(`未找到编号为${targetId}的记录,请检查输入!`); }
新手操作步骤
- 打开你的Google Sheets表格
- 点击顶部菜单栏的 扩展程序 > Apps 脚本,打开脚本编辑器
- 删除编辑器里的默认代码,粘贴上面的代码
- 点击编辑器顶部的保存按钮,给脚本起个名字(比如
UpdateTechName) - 点击运行按钮,第一次运行会触发授权,按照页面提示完成授权即可
代码逻辑说明
- 先获取两个工作表的操作对象,方便后续读写数据
- 读取WL表中指定单元格的匹配值和新名称,做了空值校验避免报错
- 读取WOL表A列的所有数据,逐行比对寻找匹配的唯一编号
- 找到匹配行后直接更新对应B列的值,因为A列是唯一值,找到后就停止循环提高效率
- 全程加了弹窗提示,操作结果一目了然
这样就能轻松完成你需要的匹配替换功能啦!
内容的提问来源于stack exchange,提问作者InFocusP3
相关产品推荐
相关产品推荐

