获取范围内具有最小值的单元格的值单元格
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
根据其他数据,您可能不想使用整数
编辑:糟糕有人更快
我有一个 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
根据其他数据,您可能不想使用整数
编辑:糟糕有人更快