VBA单元格地址Max()

lam*_*mba 6 excel vba excel-vba

我有类似的东西

sdMax = WorksheetFunction.Max(Range("D2", Cells(emptyRow, 4)))
Run Code Online (Sandbox Code Playgroud)

找到列D的最大数量

如何找到此最大数字的位置?

chr*_*sen 12

在vba中定义为用户定义的函数,将地址作为字符串返回

Function AddressOfMax(rng As Range) As String
    AddressOfMax = WorksheetFunction.Index(rng, WorksheetFunction.Match(WorksheetFunction.Max(rng), rng, 0)).Address

End Function
Run Code Online (Sandbox Code Playgroud)

或返回范围参考

Function AddressOfMax(rng As Range) As Range
    Set AddressOfMax = rng.Cells(WorksheetFunction.Match(WorksheetFunction.Max(rng), rng, 0))

End Function
Run Code Online (Sandbox Code Playgroud)

这些函数假设rng是一列宽

这些功能可以在工作表中使用,
例如

=AddressOfMax(C:C)
Run Code Online (Sandbox Code Playgroud)

或VBA

Dim r As Range
Set r = AddressOfMax(Range("D2", Cells(emptyRow, 4)))
Run Code Online (Sandbox Code Playgroud)