Sub HighlightRows()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim dict As Object
Dim colorIndex As Integer
' 设置要操作的工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 设置要操作的范围,这里假设要操作的数据在A列到E列
Set rng = ws.Range("A1:E" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row)
' 创建一个字典对象,用于存储每个值对应的颜色索引
Set dict = CreateObject("Scripting.Dictionary")
' 遍历每个单元格,将相同值的行标记为相同颜色
For Each cell In rng
If Not dict.exists(cell.Value) Then
' 如果字典中不存在该值,则为该值分配一个新的颜色索引
colorIndex = colorIndex + 1
dict.Add cell.Value, colorIndex
End If
' 将该行的字体颜色设置为对应值的颜色
cell.EntireRow.Font.ColorIndex = dict(cell.Value)
Next cell
End Sub
######
###ws.Range("A1:E" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row)###
指向工作表("ws")中的最后一行的单元格的引用:ws.Cells(ws.Rows.Count, 1)
计算总行数:ws.Rows.Count
End
方法的调用,用于在给定方向(向上)上搜索非空单元格,并返回最后一个非空单元格的引用。对于当前情况下的单元格位置,向上搜索就是从最后一行的单元格开始向上移动,直到找到第一个非空单元格:.End(xlUp)
返回给定引用的行号的属性:.Row