excel - 对于每列突出显示最大值(Excel)

标签 excel vba

我有一个 Excel 工作表,其中的值来自单元格 2:21 的每一列

我需要突出显示每列中具有最大值的相应单元格,并尝试使用宏循环遍历它。但我只知道如何针对给定的硬编码范围执行此操作..

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

关于excel - 对于每列突出显示最大值(Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8397361/

相关文章:

python - 使用 python pandas 读取 json 文件并更新现有的 excel

excel - 将使用的范围复制到文本文件

excel - 放置 application.onkey 的事件

excel - 在动态 Excel 图中更改系列名称

vba - 如果 1000> 单元格为空,则删除 Excel 列

vba - 字典通配符搜索

java - Excel无法理解java写入的数据格式

Excel - 跨多列或具有多个值的一列进行多值搜索

vba - 将事件工作表中的所有表格转换为范围

excel - 使用 Excel VBA 激活 Microsoft Edge 窗口