精华内容
下载资源
问答
  • 我们都知道,只要知道一种颜色的RGB值,不需要格式刷,我们只需要更改RGB的数值,就能够在很多地方用上这种颜色,今天就来教教大家怎么用VBA批量获取单元格中的颜色RGB值。要获取Color值,首先我们得了解它的属性,...

        今天,有人问我,在工作表中有的单元格填充了颜色,我怎么知道这个单元格的RGB数据(或者值)是什么呢?

        我们都知道,只要知道一种颜色的RGB值,不需要格式刷,我们只需要更改RGB的数值,就能够在很多地方用上这种颜色,今天就来教教大家怎么用VBA批量获取单元格中的颜色RGB值。

    79cd8022262ad635ccf4703ecb7f0ca4.png

    dd58b05a5a8171d353cde50610f07f47.gif

    240b6d8ce8a4c284dc27701a593cdf7a.png

    d6fbb31f7fe26a23b3a356822cbdf03e.png

    要获取Color值,首先我们得了解它的属性,不知道该用什么属性的可以去录制宏试试,不会的戳链接学习【VBA】如何录制宏

        Interior  内部的

        Interior.Color 内部的颜色

        interior是Range的一个属性,一般用来设置单元格内部的格式的,Color是Interior的一个属性。所以要给单元格填充颜色,如给A1单元格填充颜色,需用如下代码

        Range("A1").Interior.Color = (此处赋予一个数值)

    如果你录制过填充颜色的宏,那么你肯定可以发现,录制的颜色代码是一个很大的数值:如图

    45f09b4d3bb2dd550af0d95085cd847e.png

    也就是说,我们只用知道RGB数值与这个值的关系就能够知道单元格填充的RGB颜色是多少了。

        下面我们就来看看RGB颜色的代码吧。

    1035c8f585aad146ca27f2afd0e2b05a.png

    Sub getRGB()    Dim rng As Range    Dim r, g, b As Integer    Dim c As Double    For Each rng In Range("A2:A14")             '循环遍历单元格        c = rng.Interior.Color                           '将单元格的颜色赋值给C        r = c Mod 256        g = (c - r) / 256 Mod 256        b = (c - r - g * 256) / 256 ^ 2        rng.Offset(0, 1) = r & "," & g & "," & b            '将r,g,b在遍历的单元格偏移一列显示,用逗号分隔        rng.Offset(0, 2) = c                                    '遍历的单元格偏移两列处给单元格赋值单元格颜色值    NextEnd Sub

    代码解析:

    第5行:循环遍历单元格

    第6行:将单元格颜色赋值给c

    第7-9行:利用R,G,B与Color值的关系,将R,G,B各项值算出来

    第10行:将r,g,b在遍历的单元格偏移一列显示,用逗号分隔

    第11行:遍历的单元格偏移两列处给单元格赋值单元格颜色值

    ab836d79dfa55aa89fdabaa24e0c5157.png

    Color值与RGB的关系:

        以下c代表Color的值(以下为EXCEL公式计算法):

    = MOD(c,256)= MOD((c - r) / 256,256)b = (c - r - g * 256) / 256 ^ 2
    其实这段代码很简单,由于颜色在代码中其实也是以数值体现,那么我们只用找出R,G,B与Color值的关系,代码就很容易写了

    d03e5715dd72e917048015eb657658a7.png

    展开全文
  • 学习Excel技术,关注微信公众号:excelperfect有时候,我们需要某些...图1然而,这些自定义的颜色只有GRB值,如果想要其相应的十六进制代码,其实可以使用VBA获取。如下图2所示,选取带有背景色的单元格区域,运...

    学习Excel技术,关注微信公众号:

    excelperfect

    有时候,我们需要某些颜色对应的十六进制代码,可能是需要设计网站,也可能是需要开发Web应用。

    Excel中,我们可以通过“填充颜色——更多颜色在单元格中插入各种各样的背景色,如下图1所示。

    b869fa121433edb72d01b1802bb8b3af.png

    1

    然而,这些自定义的颜色只有GRB值,如果想要其相应的十六进制代码,其实可以使用VBA来获取。如下图2所示,选取带有背景色的单元格区域,运行代码,则会在相应背景色单元格右侧相邻单元格中输入对应颜色的十六进制代码。

    3e31ac2f85d38e8bb432503012e23f68.png

    2

    代码如下:

    '确定颜色的十六进制代码

    Sub ColorHexCode()

        '变量声明

        Dim rng As Range

        Dim strHexCode As String

        '确保选择了单元格区域

        If TypeName(Selection) <>"Range" Then Exit Sub

        '遍历所选区域的每个单元格

        For Each rng In Selection.Cells

            '确保单元格中填充有背景色

            If rng.Interior.ColorIndex <>xlNone Then

                '获取十六进制值

                strHexCode = Right("000000" & Hex(rng.Interior.Color), 6)

                '反转十六进制值

                strHexCode = Right(strHexCode, 2)& Mid(strHexCode, 3, 2) & Left(strHexCode, 2)

                '添加#号并将值显示在相邻的右侧单元格

                rng.Offset(0, 1).Value ="#" & strHexCode

            End If

        Next rng

        '只选择活动单元格

        ActiveCell.Select

    End Sub

    上述代码的图片版如下:

    c3b8e5f54c10ef98aee2a3df81979c6f.png

    b10d9d3b1eb50b9268e48cc848e210bb.png

    展开全文
  • VBA示例之 获取一个单元格中有指定字体颜色部份数据,供初学者参考,大牛勿进~~~~~~~
  • 学习Excel技术,关注微信公众号:excelperfect有时候,我们需要某些...图1然而,这些自定义的颜色只有GRB值,如果想要其相应的十六进制代码,其实可以使用VBA获取。如下图2所示,选取带有背景色的单元格区域,运...

    学习Excel技术,关注微信公众号:

    excelperfect

    有时候,我们需要某些颜色对应的十六进制代码,可能是需要设计网站,也可能是需要开发Web应用。

    Excel中,我们可以通过“填充颜色——更多颜色在单元格中插入各种各样的背景色,如下图1所示。

    6ecadb236608ba3320c24c00ad87901a.png

    1

    然而,这些自定义的颜色只有GRB值,如果想要其相应的十六进制代码,其实可以使用VBA来获取。如下图2所示,选取带有背景色的单元格区域,运行代码,则会在相应背景色单元格右侧相邻单元格中输入对应颜色的十六进制代码。

    4788cf109a09185e42569493d3733c65.png

    2

    代码如下:

    '确定颜色的十六进制代码

    Sub ColorHexCode()

        '变量声明

        Dim rng As Range

        Dim strHexCode As String

        '确保选择了单元格区域

        If TypeName(Selection) <>"Range" Then Exit Sub

        '遍历所选区域的每个单元格

        For Each rng In Selection.Cells

            '确保单元格中填充有背景色

            If rng.Interior.ColorIndex <>xlNone Then

                '获取十六进制值

                strHexCode = Right("000000" & Hex(rng.Interior.Color), 6)

                '反转十六进制值

                strHexCode = Right(strHexCode, 2)& Mid(strHexCode, 3, 2) & Left(strHexCode, 2)

                '添加#号并将值显示在相邻的右侧单元格

                rng.Offset(0, 1).Value ="#" & strHexCode

            End If

        Next rng

        '只选择活动单元格

        ActiveCell.Select

    End Sub

    上述代码的图片版如下:

    f5a7ef6d6267a1ceb0f663902aa07594.png

    6803e276f6be77e4554238f8d4bb44bf.png

    展开全文
  • 上一篇给大家介绍了如何获取单元格中的RGB值,既然讲到颜色了,本文继续来给大家讲讲,怎么根据颜色求和,如果你用公式来做单元格颜色求和,还是很麻烦的,其实VBA代码做单元格颜色求和很容易。之前,我都给大家讲的...

        上一篇给大家介绍了如何获取单元格中的RGB值,既然讲到颜色了,本文继续来给大家讲讲,怎么根据颜色求和,如果你用公式来做单元格颜色求和,还是很麻烦的,其实VBA代码做单元格颜色求和很容易。

        之前,我都给大家讲的是VBA的SUB过程,其实在学了VBA之后,我们不仅可以用代码做一些过程,来实现一些批量操作,还可以制作自定义函数,像工作表函数一样,在工作表中当做函数使用,我们来看下面这个题:

    单元格中有各种填充颜色,现在需要求相同颜色单元格中的和

    0482f2fb1259128ac3f646b136997792.png

                效果如下图:

    0c1f121825919502e3f964ebbba284cf.gif

    1f03a0afcc449f97b5f6f45dcb24c683.png

    什么是自定义函数,既然是函数,那么就有返回值,他不像过程一样做一些操作,而是将一些数据进行计算,然后返回一个数据。它区别于SUB过程,会给我们返回一个值,下面我们就来看看按颜色求和的代码过程吧。
    Function ColorSum(str1, str2)                          '自定义函数ColorSum,赋予它两个参数,参数一用于数据区域,参数二用于查找区    Dim rng1, rng As Range    Set rng1 = Range(str2.Address)                       '将第二参数所在单元格赋值给变量rng1        For Each rng In Range(str1.Address)                     '循环遍历参数一所在区域            If rng.Interior.Color = rng1.Interior.Color Then   '如果参数一区域中的颜色与参数二相同,则函数ColorSum=ColorSum+遍历的单元格中的值                ColorSum = ColorSum + rng.Value            End If        NextEnd Function

    代码解析:

    第3行:将第二参数所在单元格赋值给变量rng1第4-8行:循环遍历参数一所在区域,如果参数一区域中的颜色与参数二相同,则函数ColorSum=ColorSum+遍历的单元格中的值d7392f40b3bbad6441421e245d07d399.pngColorSum函数用法:

    ColorSum(在哪个区域找,找什么)

    该函数的两个参数必须是单元格区域,不能用字符串。跟工作表函数的ROW函数的参数用法一致。 怎么样,用代码写的单元格颜色求和是不是很简单呢,整个逻辑其实比用公式去做颜色求和更简单,不是吗?
    展开全文
  • 看上面的gif动画可以看出,对A1单元格的内容进行了设置之后,通过ExcelVBA代码的运行,就可以在指定的单元格内容中显示出来它的字体,字号等信息,同样的,还可以是颜色等等。静态的截图如下:把VBA代码复制出来如下...
  • Excel VBA自动给单元格填色

    千次阅读 2018-08-09 10:49:39
    要求:一个Excel文件中,有多个sheet,每个sheet中都有特定范围的单元格需要填充颜色,手动填充太麻烦,下面是VBA实现的自动填色 1 Sub incolor() 2 3 Dim i, j, sheetnum, rownum 4 5 '获取当前文档中的...
  • 虽说现在VBA真的是毫无排面,但只要会启用「宏」,收藏几个复制粘贴就能用的...1、自定义函数自定义一个 Countcolor() 函数,统计区域内指定颜色单元格个数。无情,知乎的代码块提供了几十种语言,就是没有VB…...
  • 来改变对应单元格的字体颜色 '获取第一行的最大列数 Dim r As Integer Dim c As Long <p>For r = 2 To 8 For c = 1 To 85  If Cells(r, c).Value < 0 Then  ...
  • VBA for Excel.txt

    2020-09-01 14:19:20
    VBA对表格EXCEL操作,修改单元格颜色获取单元格的值,设置单元格的值,VBA数组读取和写入,FOR循环,
  • 他的操作也不难,在这里跟大家分享2中方法,下面就让我们来看一下他是如何操作的一、使用vba对于这种自动填充颜色的功能,最简单有效的方法就是使用vba来实现这样的操作,首先我们点击工作表的名...
  • Excel VBA常用代码总结1 改变背景色 ...ColorIndex一览 改变文字颜色 Range"A1.Font.ColorIndex = 1 获取单元格 Cells(1, 2) Range"H7) 获取范围 Range(Cells(2, 3, Cells(4, 5) Range"a1:c3) '用快捷记号引用单元格
  • 网上VBA代码总结

    2019-02-14 22:01:17
    获取单元格 获取范围 选中某sheet 获得文档的路径和文件名 隐藏文档 禁止屏幕更新 禁止显示提示和警告消息 文件夹做成 状态栏文字表示 双击单元格内容变换 文件夹选择框方法1 选中或激活...
  • vba常用方法

    2020-10-06 08:43:59
    Excel VBA常用代码总结1 做了几个月的Excel VBA,总结了一些常用的代码,我平时编程的时候参考这些代码,基本可以完成大部分的工作,现在共享出来供大家参考。...获取单元格 Cells(1, 2) Range...
  • Excel VBA常用代码总结1 改变背景色 ...ColorIndex一览 改变文字颜色 Range"A1.Font.ColorIndex = 1 获取单元格 Cells(1, 2) Range"H7) 获取围 Range(Cells(2, 3, Cells(4, 5) Range"a1:c3) '用快捷记号引用单元格 W
  • Excel VBA常用代码总结1 改变背景色 ...ColorIndex一览 改变文字颜色 Range"A1.Font.ColorIndex = 1 获取单元格 Cells(1, 2) Range"H7) 获取范围 Range(Cells(2, 3, Cells(4, 5) Range"a1:c3) '用快捷记号引用单元格
  • Excel VBA常用代码总结1 改变背景色 ...ColorIndex一览 改变文字颜色 Range"A1.Font.ColorIndex = 1 获取单元格 Cells(1, 2) Range"H7) 获取范围 Range(Cells(2, 3, Cells(4, 5) Range"a1:c3) '用快捷记号引用单元格
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    技巧038获取单元格的地址信息 技巧039确定单元格是否属于数组 技巧040查看公式单元格的信息 3.3 设置单元格格式 技巧041突显单元格 技巧042标记特殊单元格 技巧043设置单元格的属性 技巧044设置自动套用格式 技巧...
  • 04097获取单元格文本字符串的一部分(之二) 04098获取单元格内输入的公式 04099判断单元格内是否输入了公式(之一) 04100判断单元格内是否输入了公式(之二) 04101判断工作表内是否有公式 04102判断某单元格区域...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧145 使用自定义颜色设置窗体颜色 12 技巧146 在窗体中显示图表 12 146-1 使用Export方法 12 146-2 使用API函数 12 技巧147 窗体运行时调整控件大小 12 技巧148 在用户窗体上添加菜单 12 技巧149 在用户窗体上...
  • vba_1《考勤表》

    2021-03-23 15:58:16
    二 指定单元格设置颜色 三 指定单元格格式 一 Sub EnterDates5() '获取当前月份的所有日子 Dim TheDate As Date TheDate = DateSerial(Year(Date), Month(Date), 1) '获取当日所在月份的第一天的日期 While Month...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧145 使用自定义颜色设置窗体颜色 353 技巧146 在窗体中显示图表 354 146-1 使用Export方法 354 146-2 使用API函数 356 技巧147 窗体运行时调整控件大小 357 技巧148 在用户窗体上添加菜单 360 技巧149 在用户...
  • 1、GET.CELL函数GET.CELL,获取单元格信息语法:GET.CELL(Type_num, Reference)Type_num就是想要获取单元格内容的类型号,常用的类型号有:不过这个函数是宏表函数,不能直接在单元格中使用,必须通过定义名称的方式...
  • 126.获取一个单元格中有指定字体颜色部份数据 127.对指定文件加XLS加密 128.选择指定范围内使用了填充颜色单元格 129.在特定的区域内查找文本,返回值是包含查找文本的单元格 130.返回特定区域中最大值的地址 131....
  • 函数作用:获取区域颜色值...........................53 '25.函数作用:获取活动工作表名.........................53 '26.函数作用:获取最后一行行数.........................54 '27.函数作用:判断是否连接在线.......
  • 教程:单元格颜色Sub SetCellColor() '设置单元格颜色 Sheet1.Cells(, ).Interior.ColorIndex = End SubiOS 获取User-Agent第一种方法 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero...
  • 第一参数为参照区域,第二参数为颜色条件,第三参数为求和区域,即第一参数中颜色与第二参数相同,则将对应的第三参数的单元格进行求和。如果省略第三参数则对第一参数求和。 函数名称:AVER 函数功能与参数:评分...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

vba获取单元格颜色