在具有最大值的范围内选择“单元格”

时间:2011-04-13 21:26:17

标签: excel vba excel-vba excel-2007

我正在尝试在Excel VBA 2007中选择一个单元格

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

基于此,有没有办法可以使用变量来选择范围(“:”)?

我是VBA的新手,所以任何帮助都会非常感激。

谢谢

2 个答案:

答案 0 :(得分:2)

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

EDIT。

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

答案 1 :(得分:0)

以下代码可能会帮助您实现目标。如果不清楚,请告诉我们。

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