You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Google Sheets自定义公式:基于HEX值设置指定单元格背景色

实现Google Sheets自定义HEX上色公式(颜色持久不消失)

第一步:添加Apps Script代码

  1. 打开你的Google Sheets文档,点击顶部菜单栏的「扩展程序」→「Apps Script」。
  2. 清空默认的Code.gs内容,粘贴以下代码:
function SET_HEX_COLOR(hexColor, targetCell) {
  // 处理HEX颜色格式:去掉#(如果有),统一转为大写
  const cleanHex = hexColor.toString().replace(/^#/, '').toUpperCase();
  // 验证HEX格式有效性(6位或3位)
  if (!/^([0-9A-F]{3}){1,2}$/.test(cleanHex)) {
    return "无效HEX格式";
  }
  // 补全3位HEX为6位(比如#F00转为#FF0000)
  const fullHex = cleanHex.length === 3 
    ? cleanHex.split('').map(c => c + c).join('') 
    : cleanHex;

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  let targetRange;

  if (targetCell) {
    // 如果指定了目标单元格,直接使用该范围
    targetRange = sheet.getRange(targetCell);
  } else {
    // 默认使用当前单元格右侧相邻的单元格
    const currentCell = sheet.getActiveCell();
    targetRange = sheet.getRange(currentCell.getRow(), currentCell.getColumn() + 1);
  }

  // 设置目标单元格背景色
  targetRange.setBackground(`#${fullHex}`);
  // 返回成功提示(可选,也可以返回空)
  return "已设置颜色";
}
  1. 点击脚本编辑器顶部的「保存」按钮,给项目起个名字(比如HexColorSetter)。

第二步:使用自定义公式

在任意单元格输入以下公式即可:

  • 默认用法(给右侧相邻单元格上色):在A1单元格输入 =SET_HEX_COLOR("#FF5733"),回车后B1单元格会立刻变为橘红色,即使之后删除A1的公式,B1的颜色也会保留。
  • 指定目标单元格:在A1输入 =SET_HEX_COLOR("#33FF57", "C1"),回车后C1单元格会变为绿色,同样颜色不会随公式删除消失。
  • 支持不带#的HEX值:=SET_HEX_COLOR("00FFFF", D2) 也能正常识别为青色。

方案优势

  • 完全避开onEdit冲突:无需依赖编辑触发脚本,仅在调用公式时执行颜色设置
  • 颜色持久:直接修改单元格背景色,不是条件格式或临时样式,删除公式/HEX值不影响
  • 兼容多种HEX格式:支持带#或不带#,3位或6位的HEX颜色码
  • 灵活控制目标:可指定任意单元格作为上色目标,默认右侧相邻单元格

第一次运行公式时,会弹出权限授权提示,按照指引完成授权即可正常使用。

内容的提问来源于stack exchange,提问作者Audrey G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:05:04