获取范围内具有最小值的单元格的值单元格

Getting the cell of value of the Cell with Min Value in a Range

我有一个 table 数据类似于下面

      A             B       C     D     E      
1                 London    NY    LA  Chicago
2 Population      11        18    16    12

我有以下代码来获取最大值:(成功)

Dim Rng As Range
Dim Ray
Dim Max As Integer
Set Rng = Range(Range("B2"), Range("E2").End(xlUp))
Ray = Rng.Value
Max = Application.Max(Ray)

然后,我尝试获取具有最大值的列。我的目标是让 "C" 或 C1 能够知道 NY (C1) 是具有最大值的那个。

我会尝试以下方法,但它不起作用

For Each cell In Rng
 If cell.Value = Max Then
    MaxAddress = cell.Address
    Exit For
 End If
Next cell

这与您的代码有关,应该可以工作:

Option Explicit

Public Sub TestMe()

    Dim Rng         As Range
    Dim Ray         As Variant
    Dim MaxValue    As Double
    Dim MaxCell     As Range
    Dim cell        As Range

    Set Rng = ActiveSheet.Range(Range("B2"), Range("E2").End(xlUp))
    Ray = Rng.value
    MaxValue = Application.Max(Ray)

    For Each cell In Rng
        If cell = MaxValue Then
            Set MaxCell = cell
            Exit For
        End If
    Next cell

    Debug.Print MaxCell.Address
    Debug.Print MaxCell.Column
    Debug.Print MaxCell.row

End Sub

还有其他方法,可能更好 - 例如创建一个单独的函数,为您提供一行中具有给定值的列。这个你可以经常使用。

Option Explicit

Sub TestMax()
    Dim oSheet As Worksheet
    Dim oRange As Range      
    Dim maxValue As Integer
    Dim oMaxCell As Range

    Set oSheet = ActiveSheet

    Set oRange = oSheet.Range("B2:E2")

    maxValue = Application.Max(oRange.Value)

    For Each oMaxCell In oRange.Cells
        If CInt(oMaxCell.Value) = maxValue Then
            Exit For
        End If
    Next oMaxCell

    Debug.Print oMaxCell.Column

End Sub

根据其他数据,您可能不想使用整数

编辑:糟糕有人更快