首页 > 解决方案 > 颜色编码的数据,如何使用 VBA 将它们分开?

问题描述

我有一个 Excel 文件,其中包含分批颜色编码的数据,即单元格 B2:B10 红色、单元格 B11:B20 蓝色、单元格 B30:31 红色。这些批次之间的细胞没有着色。我想将这些行分开并将它们放在单独的工作表中。问题是我不仅想获取彩色列中的值,还想获取整行

所以,我需要遍历列,并选择第一个红色范围。然后将这些值复制到新工作表中。然后移动到下一种颜色(蓝色),然后将其复制到另一张纸上。

这可能吗?如何找出单元格的颜色代码?

我的数据看起来如何的示例

标签: excelvba

解决方案


据我所知,没有办法找出颜色索引,但如果你知道颜色并且只有这两种颜色是可能的。在这种情况下,您可以只使用此代码并将颜色索引更改为您的代码,但您需要两个名为“red”和“blue”的新工作表。在此示例中,我使用颜色索引 3 表示红色,使用 5 表示蓝色。

Sub color()
i = 0
b = 0
r = 0
Do While ThisWorkbook.Worksheets(1).Cells(i + 1, 2).Interior.ColorIndex <> xlNone
    Value = ThisWorkbook.Worksheets(1).Cells(i + 1, 2).Value
    If ThisWorkbook.Worksheets(1).Cells(i + 1, 2).Interior.ColorIndex = 5 Then
        b = b + 1
        ThisWorkbook.Worksheets("blue").Cells(b, 1).Value = Value
    ElseIf ThisWorkbook.Worksheets(1).Cells(i + 1, 2).Interior.ColorIndex = 3 Then
        r = r + 1
        ThisWorkbook.Worksheets("red").Cells(r, 1).Value = Value
    End If
    i = i + 1
Loop
End Sub

推荐阅读