我有一个列表被自动过滤。
我的目标是突出显示可见行总数的20%。
我已经有一个代码,但是,我不确定如何继续突出显示从第一行可见的那20%。
下面的代码突出显示所有可见行:
let data = (datas as AnyObject).data(using: .utf8)!
示例:
如果可见行总数为50,则它将突出显示20%。在这种情况下,它将突出显示第一行中的10行。
答案 0 :(得分:2)
以下代码将计算等于可见行的20%的行数,然后在达到该行数时退出For循环:
Sub HighlightTwentyPercent()
Dim sht As Worksheet: Set sht = Worksheets("Input raw")
Dim LastRow As Long, LastColumn As Long
Dim StartCell As Range, rng As Range
Dim cl As Range
Dim TwentyPc As Long, i As Long
Set StartCell = Range("F2")
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
Set rng = sht.Range(StartCell, sht.Cells(LastRow, 6))
TwentyPc = Round(rng.Rows.SpecialCells(xlCellTypeVisible).Count * 0.2, 0)
For Each cl In rng.SpecialCells(xlCellTypeVisible)
i = i + 1
If i > TwentyPc Then Exit For
cl.Interior.Color = RGB(255, 12, 29)
Next cl
End Sub
答案 1 :(得分:1)
这可以在不使用VBA的情况下使用以下条件格式规则来完成(假设您的数据位于示例中的F2:F51
上)
=SUBTOTAL(3,$F$2:$F2)<=SUBTOTAL(3,$F$2:$F$51)/5
您可能需要根据处理舍入值的方式进行调整(例如,如果要突出显示9个中的2个可见行)。