2010-02-13 25 views
16

¿Hay una función para obtener la dirección de una celda que llama a una función VBA?Cómo obtener la dirección de la celda que llama a un VBA Funciones en una hoja de Excel

He usado "Application.ActiveCell.Address", pero he encontrado que este método no es una forma correcta de obtener la dirección de la llamada de la celda.

e.g .: si tenemos una hoja de Excel con funciones de VBA guardadas, una vez que vuelva a abrir la hoja, el método anterior no funcionará.

favor ayuda

nimo

+0

@nimo, es la función de una UDF? ¿Puede dar algún código como ejemplo de lo que está tratando de hacer? –

+2

'ThisCell' https://msdn.microsoft.com/en-us/library/office/ff834969.aspx – Slai

Respuesta

19

Puede utilizar Application.Caller, pero probablemente sería mejor para pasar el celular a la función.

With Application.Caller 
     CallerRows = .Rows.Count 
     CallerCols = .Columns.Count 
     CallerAddr = .Address 
    End With 

Ver: http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Para pasar la célula:

=SomeFunction(A1) 

caso de que el código tiene:

SomeFunction(r) 
+0

Acabo de enterarme de que hice la misma pregunta: [Cómo averiguo a qué célula se llamó una función VBA desde ] (http://stackoverflow.com/questions/5559279/excel-cell-from-which-a-function-is-called) –

Cuestiones relacionadas