2017-02-22 105 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 

根據其他數據,你可能不希望與整數工作,雖然

編輯:哎呀有人在快

相關問題