Google Sheets:基于ShippingDoc的ID值标记Orders对应行背景色的需求
嘿,这个需求完全可以用Google Apps Script搞定,刚好能实现你要的「标记所有选中过的ID对应单元格」的效果,具体步骤我给你理清楚:
实现步骤
1. 打开脚本编辑器
- 打开你的Google Sheets文档,点击顶部菜单栏的「扩展程序」>「Apps Script」,进入脚本编辑器页面。
2. 替换默认代码
把编辑器里自带的function myFunction()代码删掉,粘贴下面的脚本:
function onEdit(e) { // 获取当前编辑的单元格和工作表信息 const editedRange = e.range; const activeSheet = editedRange.getSheet(); // 只响应ShippingDoc工作表C2单元格的编辑操作 if (activeSheet.getName() === "ShippingDoc" && editedRange.getA1Notation() === "C2") { const selectedId = editedRange.getValue(); if (!selectedId) return; // 如果C2是空的,直接退出不执行 // 拿到Orders工作表对象 const ordersSheet = e.source.getSheetByName("Orders"); // 获取Orders表A7:A区域的所有ID值 const idListRange = ordersSheet.getRange("A7:A"); const idValues = idListRange.getValues(); // 遍历查找匹配的ID对应的行 for (let i = 0; i < idValues.length; i++) { if (idValues[i][0] === selectedId) { // A7是第7行,所以匹配项的行号是i+7 const targetRowNum = i + 7; // 设置该单元格背景为绿色 ordersSheet.getRange(targetRowNum, 1).setBackground("#00ff00"); break; } } } }
3. 保存并测试
- 点击脚本编辑器顶部的保存按钮,给这个脚本起个好记的名字(比如「MarkSelectedOrderIds」)。
- 返回你的Sheets文档,在ShippingDoc的C2单元格选择或输入Orders表A7:A里的ID,就能看到Orders表中对应ID的单元格立刻变成绿色;切换其他ID时,之前标记的绿色会一直保留,新选中的ID对应单元格也会变成绿色。
小补充
- 脚本里用的绿色是纯绿
#00ff00,如果你偏好浅绿或者其他色调,直接把这个颜色码换成你想要的十六进制值就行(比如#90EE90是柔和的浅绿)。 - 这个脚本是自动触发的,只要你编辑ShippingDoc的C2单元格,它就会自动运行,不用手动点执行按钮。
内容的提问来源于stack exchange,提问作者hits123
相关产品推荐
相关产品推荐

