在具有最大值的范围内select单元格

我想在Excel VBA 2007中select一个单元格

第2行的示例中,单元格A到H有一些数字,但单元格B2的数值最高。 有没有一个公式可以用来获取单元格B2的地址?

基于这个,有没有一种方法可以使用一个variables来select一个范围(“:”)?

我是VBA的新手,所以任何帮助将不胜感激。

谢谢

=CELL("address",INDEX(A2:H2,MATCH(MAX(A2:H2),A2:H2,0))) 

编辑。

 Sub max_value_address() Dim i As Long i = 2 'This example assigns to A1 cell the address of max value in the range a2:h2 Range("a1").Formula = "=CELL(""Address"",INDEX(A" & i & ":H" & i & ",MATCH(MAX(A" & i & ":H" & i & "),A" & i & ":H" & i & ",0)))" End Sub 

编辑2.这个版本更简洁一点。

 Sub max_value_address() Dim i As Long Dim str As String i = 2 str = "a" & i & ":h" & i 'assign to str a2:h2 Range("a1").Formula = "=CELL(""address"",INDEX(" & str & ",MATCH(MAX(" & str & ")," & str & ",0)))" End Sub 

以下代码可能会帮助您达到目标。 让我们知道,如果不清楚。

 Sub GetHigherValueCellAddress() Dim oCell As Excel.Range Dim oRange As Excel.Range Dim vPrevValue As Variant Dim sAddress As String Set oRange = Sheets(1).Range("A1:C2") For Each oCell In oRange If oCell.Value > vPrevValue Then sAddress = oCell.Address vPrevValue = oCell.Value End If Next oCell MsgBox sAddress End Sub