【问题标题】:Getting the cell of value of the Cell with Min Value in a Range获取范围内具有最小值的单元格的值的单元格
【发布时间】:2017-07-12 05:27:21
【问题描述】:

我有一个表格,其中的数据类似于下面

      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

【问题讨论】:

    标签: vba excel min


    【解决方案1】:

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

    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
    

    还有其他方法,可能会更好 - 例如制作一个单独的函数,在一行中为您提供具有给定值的列。这个你可以用很多。

    【讨论】:

    • 使用Find 查找MaxValue 的位置
    • @ShaiRado - 想要返回单元格,以便用户稍后可以从中获取地址、列和行。
    【解决方案2】:
    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
    

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

    编辑:哎呀有人更快

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多