【发布时间】:2019-10-20 23:54:00
【问题描述】:
我在一列中有一组数据(数字)。我想要实现的是突出显示(直接在本专栏中)前 3 个值。如果没有重复,它工作正常,但如果有,我得到错误的结果(重复被视为唯一值)。
我写了一个简单的函数(请看下面),但是它并不能正常工作。
Function isTop(cellTop As Range, rngTop As Range, noTop As Integer) As Boolean
'cellTop - cell to be checked
'rngTop - range to be considered
'noTop - nth top value
Dim iStartTop As Integer, noOccurTop As Integer, noTopUpdate As Integer
For iStartTop = 1 To noTop
If cellTop.Value = Application.WorksheetFunction.Large(rngTop, iStartTop) Then
isTop = True
Exit Function
End If
Next iStartTop
End Function
假设 A 列中有以下一组数据(12 个元素):
1
2
3
4
1
2
3
4
1
2
3
4
我想突出显示前 3 个元素(通过使用条件格式和标准的前 3 个条件或函数 =isTop(A1,A:A,3))。应用任何提供的方法后,只会突出显示包含“4”的单元格。
但是,我希望突出显示“4”、“3”和“2”。如果给定列中存在重复项,有没有办法解决这个问题?
提前感谢您的帮助。 最好的祝福, 卡米尔
【问题讨论】:
-
您是否希望突出显示所有具有 4、3 和 2 的值?还是只是前 4、3 和 2 个?
-
是的,所有值都应该突出显示(3 x "4"、3 x "3" 和 3 x "2"),这就是问题所在。
标签: excel vba excel-formula conditional-formatting