我正在尝试在Excel VBA 2007中选择一个单元格
第2行中的示例,单元格A到H有一些数字但是单元格B2具有最高值。有没有一个公式可以用来获取单元格B2的地址?
基于此,有没有办法可以使用变量来选择范围(“:”)?
我是VBA的新手,所以任何帮助都会非常感激。
谢谢
答案 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