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

| 我正在尝试在Excel VBA 2007中选择一个单元格 在第2行的示例中,单元格A至H具有一些数字,但单元格B2具有最高值。我可以使用一个公式来获取单元格B2的地址吗? 基于此,有没有一种方法可以使用变量来选择Range(\“:\”)? 我是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
    

要回复问题请先登录注册