获取具有最小值的单元格的值的单元格

我有一个与下面的数据类似的表

ABCDE 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 

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

编辑:哎呀有人更快