VBA 已知填充颜色 批量提取RGB数值

我不会VB。已百度。求问,怎么修改能进行批量操作。就是A列已填充颜色,RGB数值结果输出到B列。百度到的这个只是1个单元格。我想要从A2开始到A2000所有的单元格都进行... 我不会VB。已百度。求问,怎么修改能进行批量操作。就是A列已填充颜色,RGB数值结果输出到B列。
百度到的这个只是1个单元格。我想要从A2开始到A2000所有的单元格都进行操作。将结果输出到B2到B2000。直到单元格为“无填充颜色”为止。

Sub Macro1()
'
' Macro1 Macro
'

c = Range("a1").Interior.Color
r = c Mod 256
g = (c - r) / 256 Mod 256
b = (c - r - g * 256) / 256 ^ 2
[B1] = r & " " & g & " " & b

'
End Sub
展开
 我来答
落叶l无情
推荐于2016-11-11 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1425万
展开全部
sub getRGB()
    for i=2 to 2000
        if Range("A" & i).Interior.ColorIndex=xlNone then exit for
        c = Range("A" & i).Interior.Color
        r = c Mod 256
        g = (c - r) / 256 Mod 256
        b = (c - r - g * 256) / 256 ^ 2
        cells(i,"B")=r & "," & g & "," & b
    next
end sub
手机用户99539
2018-07-26
知道答主
回答量:7
采纳率:0%
帮助的人:5757
引用落叶l无情的回答:
sub getRGB() for i=2 to 2000 if Range("A" & i).Interior.ColorIndex=xlNone then exit for c = Range("A" & i).Interior.Color r = c Mod 256 g = (c - r) / 256 Mod 256 b = (c - r - g * 256) / 256 ^ 2 cells(i,"B")=r & "," & g & "," & b nextend sub
展开全部
Option Explicit
Public Function RGB(a As Range) As String
Application.Volatile
Dim r As Integer, g As Integer, b As Integer
r = a.Interior.COLOR Mod 256
g = (a.Interior.COLOR - r) / 256 Mod 256
b = ((a.Interior.COLOR - g - b * 256) / 256 ^ 2) - 1
RGB = r & "," & g & "," & b
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式