请求编写Google Sheets OnEdit脚本:按院校匹配Hex值修改指定区域背景色
Google Sheets OnEdit 脚本实现院校匹配背景色设置
完整实现脚本
function onEdit(e) { // 获取编辑事件关联的工作表和单元格 const editedSheet = e.source.getActiveSheet(); const editedRange = e.range; // 仅在编辑SUMMARY表的W3单元格时执行逻辑 if (editedSheet.getName() !== "SUMMARY" || editedRange.getA1Notation() !== "W3") return; // 获取输入的院校名称并去除首尾空格 const schoolName = editedRange.getValue().trim(); if (!schoolName) { // 若W3清空,将目标区域重置为白色背景 editedSheet.getRange("S3:Z4").setBackground("#ffffff"); return; } // 读取REFERENCE表的院校与颜色数据 const referenceSheet = e.source.getSheetByName("REFERENCE"); // 假设AB列从第2行开始是数据(第1行为表头),若数据从第1行开始,改为"AB1:AC" const data = referenceSheet.getRange("AB2:AC").getValues(); // 查找匹配院校对应的Hex颜色 let targetHex = "#ffffff"; // 默认白色 for (const row of data) { if (row[0] && row[0].trim() === schoolName) { targetHex = row[1] || "#ffffff"; break; } } // 设置S3:Z4区域的背景色 editedSheet.getRange("S3:Z4").setBackground(targetHex); }
关键逻辑说明
- 触发过滤:脚本仅对
SUMMARY表的W3单元格编辑事件响应,避免无关操作触发脚本 - 空值处理:清空
W3时自动重置目标区域背景为白色 - 数据适配:若你的
REFERENCE表院校数据从第1行开始(无表头),将代码中AB2:AC改为AB1:AC即可 - 容错机制:未找到匹配院校时,默认使用白色背景
新手使用步骤
- 打开你的Google Sheets文档
- 点击顶部菜单栏 工具 > 脚本编辑器
- 删除默认的
myFunction()代码,粘贴上述脚本 - 点击编辑器顶部保存按钮,给脚本项目命名(比如
SchoolColorSetter) - 关闭脚本编辑器,返回表格后编辑
SUMMARY表的W3单元格即可测试效果
内容的提问来源于stack exchange,提问作者Cruton
相关产品推荐
相关产品推荐

