Max()的VBA单元格地址

我有类似的东西

sdMax = WorksheetFunction.Max(Range("D2", Cells(emptyRow, 4))) 

find列D的最大数量

我如何find这个最大数量的位置?

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

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

或者返回一个范围参考

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

这些函数假设rng是一列宽

这些function可以在工作表中使用
例如

 =AddressOfMax(C:C) 

或在vba中
例如

 Dim r As Range Set r = AddressOfMax(Range("D2", Cells(emptyRow, 4)))