2017-02-22 104 views
1

我有一个数据类似于见下表获取与闽值的单元格的值的单元格的范围

 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)是最大值的那个。

I'll尝试以下方法,但它不工作

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

回答

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 

还有其他的方法,可能会更好做 - 例如做一个单独的函数,给你一列连续的给定值。这个你可以使用很多。

+0

使用'Find'看这里'MaxValue'发现 –

+0

@ ShaiRado - 想要返回单元格,所以用户可以从中获取地址,列和行。 – Vityata

+0

@SamuelMartin - 欢迎您:) – Vityata

0
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 

根据其他数据,你可能不希望与整数工作,虽然

编辑:哎呀有人在快

相关问题