对于每个列突出显示最大值(Excel)
我有一个Excel工作表,值从单元格2:21的每列中进去
我需要突出显示每个列中相应的单元格的最大值,并尝试通过macros循环。 但是我只知道如何去做一个给定的硬编码范围。
Private Sub Worksheet_Activate() Dim zelle As Range For Each zelle In ActiveSheet.Range("B2:B21") If zelle.Value = Application.WorksheetFunction.Max(Range("B2:B21")) Then zelle.Interior.ColorIndex = 6 Else zelle.Interior.ColorIndex = xlNone End If Next End Sub
我尝试使用范围(“B:IT”)的列的新范围,并通过该迭代,但没有奏效。
也许这只是2或3行?
这可能适合你。 它不是使用硬编码的范围,而是循环使用任何列,并调整具有不同“长度”的列。 它假设一个单一的标题行和列。
Private Sub Worksheet_Activate() Dim zelle As Range Dim rng As Range Dim lCol As Long Dim lLastRow As Long With ActiveSheet For lCol = 2 To .UsedRange.Columns.Count lLastRow = .Cells(.Rows.Count, lCol).End(xlUp).Row Set rng = .Range(.Cells(2, lCol), .Cells(lLastRow, lCol)) For Each zelle In rng If zelle.Value = Application.WorksheetFunction.Max(rng) Then zelle.Interior.ColorIndex = 6 Else zelle.Interior.ColorIndex = xlNone End If Next Next lCol End With End Sub
另一种方法来做到这一点是没有VBA ,是
- 计算最大值,例如在底部(=
MAX(A1:A10)
)和 - 要使用条件格式,请突出显示与=
MAX(A1:A10)
计算结果匹配的单元格。
我知道这个问题涉及到VBA,但是这使得它dynamic和VBA独立。
使用variables:
Range(Cells(row_var_1, col_var_1),Cells(row_var_2, col_var_2))
其中row_var_1
, col_var_1
, row_var_2
和col_var_2
是可能在循环中迭代的variables。