求Google Sheets根据指定单元格值自动变更工作表标签颜色的脚本
Google Sheets 订单标签颜色自动同步解决方案
功能适配说明
- 全表统一触发单元格规则,任意工作表指定位置内容更新自动同步标签颜色
- 规则全局生效,复制生成的新工作表无需额外配置自动继承功能
- 触发单元格内容清空时自动恢复标签默认颜色,适配二次发货的状态重置需求
可直接运行的Apps Script代码
// --------------- 自定义配置区(可根据实际需求修改) --------------- const TRIGGER_CELL = 'B2'; // 所有工作表统一的状态触发单元格位置,示例为B2 const STATUS_COLOR_RULE = { // 格式:'状态内容': '十六进制颜色码',可自行增减条目 '待排产': '#F44336', // 红色(示例工厂初始状态专属色) '待发货': '#FF9800', // 橙色 '部分发货': '#FFEB3B', // 黄色 '已发货': '#4CAF50', // 绿色 }; const DEFAULT_TAB_COLOR = null; // 内容清空时恢复系统默认标签色,无需修改 // ------------------------------------------------------------- function onEdit(e) { // 校验是否为触发单元格的编辑操作 const editedRange = e.range; if (editedRange.getA1Notation() !== TRIGGER_CELL) return; const currentSheet = editedRange.getSheet(); const currentStatus = editedRange.getValue().toString().trim(); // 状态为空则恢复默认颜色 if (!currentStatus) { currentSheet.setTabColor(DEFAULT_TAB_COLOR); return; } // 匹配到对应状态则修改标签色 if (STATUS_COLOR_RULE.hasOwnProperty(currentStatus)) { currentSheet.setTabColor(STATUS_COLOR_RULE[currentStatus]); } }
部署步骤
- 打开你的订单母版所在的Google Sheets文档,点击顶部菜单栏「扩展程序」→「Apps脚本」
- 清空代码编辑器默认生成的内容,粘贴上述完整代码
- 根据你的业务规则修改配置区的触发单元格位置、状态与对应的颜色值
- 点击编辑器顶部的保存按钮,自定义项目名称(如「订单标签同步」),按照提示完成脚本权限授权
- 配置完成后直接关闭Apps脚本页面即可,所有规则立即生效
补充说明
- 脚本为全局生效规则,后续复制母版生成的任意新工作表都将自动适配规则,无需额外操作
- 状态匹配为精确匹配,填写状态时需和配置区的「状态内容」完全一致才能触发对应颜色
- 默认仅手动修改触发单元格内容时触发规则,若需要支持公式计算结果变更触发,可将
onEdit函数改为可安装的onChange触发器即可
内容的提问来源于stack exchange,提问作者Ryan Peterson
相关产品推荐
相关产品推荐

