对于每个列突出显示最大值(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 ,是

  1. 计算最大值,例如在底部(= MAX(A1:A10) )和
  2. 要使用条件格式,请突出显示与= MAX(A1:A10)计算结果匹配的单元格。

我知道这个问题涉及到VBA,但是这使得它dynamic和VBA独立。

在这里输入图像描述

使用variables:

 Range(Cells(row_var_1, col_var_1),Cells(row_var_2, col_var_2)) 

其中row_var_1col_var_1row_var_2col_var_2是可能在循环中迭代的variables。