着色Excel行

时间:2018-01-19 11:42:56

标签: excel vba

所以我在这个网站上发现这个脚本用相同的单元格数据着色行,并在celldata改变时更改颜色,它似乎工作正常,但我有两个小问题

  1. 它似乎只适用于前900行(我有一个超过8000行的excel列表)
  2. 它为整行着色,有没有办法让它只为行的某个部分着色?
  3. 提前致谢!这是剧本:

    Public Sub HighLightRows()
    Dim i As Integer
    i = 2 'start at 2, cause there's nothing to compare the first row with
    Dim c As Integer
    c = 2       'Color 1. Check http://dmcritchie.mvps.org/excel/colors.htm for color indexes
    
    Do While (Cells(i, 1) <> "")
        If (Cells(i, 1) <> Cells(i - 1, 1)) Then 'check for different value in cell A (index=1)
            If c = 2 Then
                c = 37   'color 2
            Else
                c = 2   'color 1
            End If
    
        End If
    
        Rows(Trim(Str(i)) + ":" + Trim(Str(i))).Interior.ColorIndex = c
    
            i = i + 1
        Loop
    End Sub
    

2 个答案:

答案 0 :(得分:0)

试试这个:

let arr = [1,2,3,4,5,6,7,8,9,10];

arr.slice(0,3); /*returns [1,2,3]*/
arr.slice(3,7); /*returns [4,5,6,7]*/
arr.slice(7,10); /*returns [8,9,10]*/

答案 1 :(得分:0)

看起来代码只评估单元格是否与其上方的单元格相同。 John Coleman说,条件格式化会更有效。有了它,可以评估整列中的值,而不仅仅是相邻的值。而且,如果我没有弄错的话,那么自Excel 2007以来就有了寻找重复值的设置,所以没有必要做某种公式功夫。

除非我遗漏了某些内容,否则它就像条件格式一样简单 - &gt;突出显示单元格规则 - &gt;重复值。