现在有这样一个查询结果:
id   no   name  count   
1    4    aaa   256
1    8    bbb   789
1    12   ccc   452
2    5    xxx   123
2    8    bbb   458
2    11   vvv   478
2    18   sss    423
4    4    aaa    256
4    8    bbb    421
要求相同的id行填充同一种颜色,只填充有值得这四列。
我折腾了半天,不是按单元格填充就是按列填充,实在无奈了。请高手指点。
For ii = 1 To 4
            Cells(1, ii).Value = ii
                For jj = 1 To 10
                Cells(jj, ii).Value = jj
                Cells(jj, ii).Select
                Cells(jj, ii).Activate
                Selection.Interior.ColorIndex = ii
                Next jj
            jj = 0
            Next ii
我知道我的循环写的有问题,但是应该怎么改呢?

解决方案 »

  1.   

        Dim jj As Long
        Dim LastValue As Variant, ColorIndex As Long
        For jj = 1 To 10
            If Cells(jj, 1).Value <> LastValue Then
                LastValue = Cells(jj, 1).Value
                ColorIndex = ColorIndex + 1
            End If
            Range(Cells(jj, 1), Cells(jj, 4)).Select
            Selection.Interior.ColorIndex = ColorIndex
        Next jj
      

  2.   

    我就在Excel录制了一个空的宏,然后将上面代码添进去,执行就成功了。
      

  3.   

    我刚重新弄了一下,颜色是出来了。但不是我想要的。可能我上面没说清楚。我上面列举的查询结果,例如id=1的,所以的id=1的要求填充成一个颜色。id=2的填充成另一种颜色。也就是说。id相同的行填充颜色一样。楼上的代码跑出来也是一行一个颜色。不是我想要的那种。
      

  4.   

    id是排了序的吗?
    如果排了序:j=1
    for i=2 to [A65530].End(Xlup).Row
        if range("A" & i) = range("A" & i-1) or range("A" & i) = range("A" & i+1) then
            range("A" & i & ":D" & i).Interior.ColorIndex = j
        else
            j=j+1
        end if
    next i没有调试,你试吧。
      

  5.   

    “ If Range("A " & i) = Range("A " & i - 1) Or Range("A " & i) = Range("A " & i + 1) Then
                    Range("A " & i & ":D " & i).Interior.ColorIndex = j”提示方法range作用于对象_worksheet时失败
      

  6.   

    行了,刚才没试,现在行了Dim i As Integer, j As Integer
    j = 2
    For i = 1 To [A65530].End(xlUp).Row
        If Range("A" & i) <> Range("A" & i + 1) Then j = j + 1
        Range("A" & i + 1 & ":D" & i + 1).Interior.ColorIndex = j
    Next i
      

  7.   

    到底什么意思?是不是
    1         4         aaa       256 
    1         8         bbb       789 
    1         12       ccc       452 
    这些行为一个颜色?还是3个1为一个颜色,4,8,12为另一个颜色?
    我上面的程序为所有相同ID的行为相同颜色,不对吗?
      

  8.   

    啊?我跑出来的还是每行一个颜色啊。
    id       no       name     count       
    1         4         aaa       256 
    1         8         bbb       789 
    1         12       ccc       452 
    2         5         xxx       123 
    2         8         bbb       458 
    2         11       vvv       478 
    2         18       sss         423 
    4         4         aaa         256 
    4         8         bbb         421 
    id=1的三行一个颜色,id=2的几行一个颜色,如此类推