如何同时选中第一列和第二列所有填充色为黑色的单元格

解决方案 »

  1.   

    Sub Test()
      Dim cel As Range, aa As Range
      For Each cel In Range("A:B")
        If cel.Interior.ColorIndex = 1 Then
          If aa Is Nothing Then Set aa = cel Else Set aa = Union(aa, cel)
        End If
      Next
      If Not aa Is Nothing Then aa.Select
    End Sub
      

  2.   

    Quote: 引用 2 楼 qq_20320947 的回复:

    有具体的区域限制把RANGE里的范围改了就不卡了,如下:
    Sub Test()
      Dim cel As Range, aa As Range
      For Each cel In Range("A1:B10")
        If cel.Interior.ColorIndex = 1 Then
          If aa Is Nothing Then Set aa = cel Else Set aa = Union(aa, cel)
        End If
      Next
      If Not aa Is Nothing Then aa.Select
    End Sub
    是能选择中的,除非你单元格的填充色不是纯黑色要选哪个区改ColorIndex 对应颜色的数字就行,颜色对照表和运行结果可以看图片
      

  3.   

    不好意思,我运行代码后,还是实现不了。仔细看了才发现,我是先用条件格式获取单元格的颜色为黑色,A1:B10 之间的单元格数值根据条件格式已经设置好了单元格的填充色为黑色,现在主要是要选中条件格式设置后的黑色。运行您的代码后发现单元格通过条件格式设置后的黑色没法选中,如果是用自己手动填充的单元格黑色的,用了您的代码确实能实现。 这个问题困扰很久了,还麻烦您帮忙处理下,谢谢!补充的问题 应该改为 条件格式设置后的单元格为黑色 用VBA代码如何实现选中。
      

  4.   

    试试看,看看颜色对不对:Sub test()
        Dim objRange As Range
        For Each objRange In Sheet1.Range("A1:B10")
            Debug.Print objRange.Interior.Color
        Next
    End Sub
      

  5.   

    首先,建议楼主把问题描述完整:A:B列用条件格式根据 数据 设置了不同的颜色,需要代码实现 选中A:B列中 所有相同颜色的单元格
      

  6.   

    你这个代码???怎么会对呢?这是让你检查所有格子的颜色是不是都是一样的。
    比如 rgb(0,0,0)是黑色, rgb(5,5,5) 看上去也是挺黑的,但程序就不认为这是同一种颜色
      

  7.   

    你这个代码???怎么会对呢?这是让你检查所有格子的颜色是不是都是一样的。
    比如 rgb(0,0,0)是黑色, rgb(5,5,5) 看上去也是挺黑的,但程序就不认为这是同一种颜色楼主说了是用条件格式标记的颜色,这个用代码读不出来
      

  8.   

    你这个代码???怎么会对呢?这是让你检查所有格子的颜色是不是都是一样的。
    比如 rgb(0,0,0)是黑色, rgb(5,5,5) 看上去也是挺黑的,但程序就不认为这是同一种颜色楼主说了是用条件格式标记的颜色,这个用代码读不出来
    谢谢您补充好我的问题,其实换句话中就是选中用条件格式设置好的单元格,例如黑色,这样怎么选中呢?
    如果手动填充的黑色用二三楼朋友的回复代码是可以执行的。但实际上还是没处理好我想要的结果。
      

  9.   

    Quote: 引用 14 楼 qq_20320947 的回复:

    如果是条件格式的话你没必要纠结于颜色啊,你不是设置有条件么,你把我二三楼代码里IF里的条件换成你条件格式的条件就可以了。