2011-03-07 14 views
6

tengo algo así comodirección de celda de VBA de Max()

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

para encontrar el máximo número de la columna D

¿Cómo puedo encontrar la ubicación de este número máximo?

+1

Permítanme darles la bienvenida a StackOverflow y recordar tres cosas que normalmente hacemos aquí: 1) Al recibir ayuda, trate de darle demasiado ** responder a las preguntas * * en su área de especialización 2) ['Lea las preguntas frecuentes'] (http://tinyurl.com/2vycnvr) 3) Cuando vea buenas preguntas y respuestas, vote por ellas [' usando los triángulos grises'] (http: // i.imgur.com/kygEP.png), ya que la credibilidad del sistema se basa en la reputación que los usuarios obtienen al compartir sus conocimientos. Recuerde también aceptar la respuesta que mejor resuelva su problema, en caso de haberlo, ['presionando el signo de la marca de verificación '] (http://i.imgur.com/uqJeW.png) –

Respuesta

12

define como una función definida por el usuario en VBA, volviendo la dirección como una cadena

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

End Function 

o devolver una referencia de rango

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

End Function 

estas funciones asumen RNG es una columna de ancho

Estas funciones se pueden utilizar en la hoja
, por ejemplo,

=AddressOfMax(C:C) 

o en VBA
por ejemplo

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