获取 Excel 填充色的十六进制颜色值:取色器 + 手动转 RGB

WPS的Excel怎么获取填充颜色的颜色值是多少

在WPS Excel中获取填充颜色的颜色值,主要有以下几种方法,你可以根据自己的情况选择:

🛠️ 方法一:使用名称管理器与宏表函数(无需编程)

这是最常用且无需编程的方法,适合一次性或少量获取颜色值。

  1. 打开名称管理器 :在WPS表格中,点击顶部菜单栏的 "公式" -> "名称管理器"。

  2. 新建名称 :在名称管理器窗口中,点击 "新建"。

  3. 设置名称和引用位置:

    • 名称 :输入一个你容易记住的名字,比如 GetColor。

    • 引用位置 :输入公式 =GET.CELL(63, 单元格)。

      • 63 是一个固定的参数,代表我们要获取的是单元格的背景色。

      • 请将 "单元格" 替换为你实际要获取颜色的单元格地址,例如 A1。

    • 点击 "确定" 保存设置。

  4. 使用自定义函数 :在任意一个空白单元格中输入 =GetColor(即你刚才设置的名字),它就会返回指定单元格的背景色数值。

    • 注意 :使用此方法后,保存文件时,WPS会提示你将文件格式保存为 .xlsm(启用宏的工作簿),否则自定义函数会失效。

💻 方法二:使用WPS JS宏(适合批量处理)

如果你需要处理大量数据或想实现自动化,可以使用WPS内置的JS宏来编写一个自定义函数。

  1. 进入宏编辑器 :点击 "开发工具" -> "WPS宏编辑器"。

  2. 插入模块并编写代码:在编辑器中插入一个新模块,然后粘贴以下代码:

    javascript

    复制代码
    function GET_COLOR(rng, type) {
        // 获取背景色的索引值
        var clr_idx = rng.Interior.ColorIndex;
        if (type == "idx") {
            return clr_idx;
        }
        // 获取10进制颜色值
        var clr = rng.Interior.Color;
        if (type == "10") {
            return clr;
        }
        // 将10进制颜色值转为16进制
        var wf = Application.WorksheetFunction;
        var clr_hex = wf.Dec2Hex(clr);
        var hex_len = clr_hex.length;
        if (hex_len < 6) {
            clr_hex = wf.Rept("0", 6 - hex_len) + clr_hex;
        }
        // 拆分出RGB的16进制值
        var r_hex = clr_hex.slice(4);
        var g_hex = clr_hex.slice(2, 4);
        var b_hex = clr_hex.slice(0, 2);
        if (type == "16") {
            return r_hex + g_hex + b_hex; // 返回16进制颜色值
        } else if (type == "rgb") {
            // 将16进制转为10进制,并返回RGB值
            return wf.Hex2Dec(r_hex) + "," + wf.Hex2Dec(g_hex) + "," + wf.Hex2Dec(b_hex);
        }
    }
    • 代码说明:

      • rng:代表你要获取颜色的目标单元格。

      • type:用于指定返回值的格式。

        • "idx":返回颜色索引值。

        • "10":返回10进制颜色值。

        • "16":返回16进制颜色值。

        • "rgb":返回RGB值。

  3. 使用自定义函数 :保存代码后,回到表格,就可以像使用普通函数一样使用它了。例如,在单元格输入 =GET_COLOR(A1, "rgb"),即可获取A1单元格背景色的RGB值。

🎨 方法三:使用取色器(获取任意位置颜色)

这个方法不能直接获取某个单元格的填充色值,但可以用"吸管"工具吸取屏幕上任意位置的颜色,并查看其RGB值。

  1. 在WPS中插入一个形状(如矩形)。

  2. 选中该形状,在右侧的"填充"选项中选择 "取色器"(滴管图标)。

  3. 将鼠标移动到目标颜色上(可以是某个单元格),取色器会实时显示该颜色的RGB值。

🧰 方法四:使用第三方工具(如RPA工具)

如果你在使用影刀等RPA工具,其"获取单元格属性"命令中通常有直接的"背景色"选项,可以一键获取。

总结一下:

  • 如果只是偶尔查看一两个单元格的颜色,方法一(名称管理器) 最方便。

  • 如果需要批量处理或获取特定格式(如RGB),方法二(JS宏) 更强大。

  • 如果只是想看看某个颜色值,方法三(取色器) 最直接。


需要十六进制的颜色值,怎么获取,取色器显示的是RGB的值


明白了,你想要的是十六进制颜色值(比如 #FF0000 或 FF0000),而取色器只显示 RGB(如 255,0,0)。在 WPS 表格中,最直接且一劳永逸的方法就是使用我之前提供的 JS 宏自定义函数。它可以一次性返回十六进制,无需手动转换。

🚀 推荐方案:使用 JS 宏返回十六进制值

我已经在之前的回答中给出了完整的宏代码,现在你只需要按以下步骤调用即可:

  1. 确保宏已启用:如果还没创建,请按前面"方法二"的步骤,在"开发工具"->"WPS宏编辑器"中插入模块并粘贴那段代码。

  2. 保存文件为 .xlsm(启用宏的工作簿),否则函数会失效。

  3. 在任意单元格中输入公式:

    excel

    复制代码
    =GET_COLOR(A1, "16")

    其中 A1 替换为目标单元格,第二个参数 "16" 表示返回十六进制颜色值(不带 # 号,例如 FF0000)。

如果你需要带 # 号,可以在公式外套一层 ="#"&GET_COLOR(A1,"16")。


🧮 备选方案:手动将 RGB 转为十六进制(不使用宏)

如果不想用宏,你可以先用取色器记下 RGB 三个数值,然后在 WPS 中用公式拼接(但要补足两位):

假设红色值在 B1,绿色值在 C1,蓝色值在 D1,则:

excel

复制代码
=DEC2HEX(B1,2)&DEC2HEX(C1,2)&DEC2HEX(D1,2)
  • DEC2HEX 的第二个参数 2 确保结果至少两位,比如 0 会显示为 00。

  • 如果 RGB 值是手动输入的,直接替换单元格引用即可。

但这种方法每次都要手动输入 RGB,不如宏方便。


📌 总结

  • 要自动获取任意单元格的十六进制填充色,首选 JS 宏函数 GET_COLOR(单元格, "16")。

  • 如果只是偶尔查看一两个颜色,用取色器看 RGB,再用 DEC2HEX 手工转换也行,但不够高效。

按推荐方案操作,以后只需像普通函数一样用即可,简单快捷。如果对宏代码有任何疑问,可以再问我。

相关推荐
尤鸟倦3 天前
OneNote table复制到Excel遇到的各种问题
excel
2501_930707784 天前
使用C#代码使用条件格式为 Excel 隔行设置颜色
c#·excel
leihefeng4 天前
PX04-用 Python 读 Excel 画折线图,还能直接插回 Excel 文件
python·excel
yanlaifan4 天前
Excel中指定单元格不能输入内容的方法
excel
babe小鑫5 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
Data-Miner5 天前
商品ABC分类分析怎么用AI做?脚本复用+图表可编辑的一次完整实操
人工智能·数据分析·excel
E-iceblue8 天前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
Data-Miner8 天前
AI处理数据的脚本复用与逻辑复用有什么区别?哪种方式更能沉淀工作成果
数据分析·excel
福兮说8 天前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
慧都小妮子9 天前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机