Выберите ячейку в диапазоне, который имеет максимальное значение - PullRequest
1 голос
/ 14 апреля 2011

Я пытаюсь выбрать ячейку в Excel VBA 2007

Пример в строке 2, ячейки от A до H имеют некоторые числа, но ячейка B2 имеет наибольшее значение.Есть ли формула, которую я мог бы использовать, чтобы получить адрес ячейки B2?

Исходя из этого, есть ли способ, которым я мог бы использовать переменную для выбора диапазона (":")?

Я новичок в VBA, поэтому любая помощь будет принята с благодарностью.

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011
=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
0 голосов
/ 14 апреля 2011

Приведенный ниже код может помочь вам достичь вашей цели. Дайте нам знать, если неясно.

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
...