25

Is there a function to get the address of a cell which call a VBA function ?

I used "Application.ActiveCell.Address" , but found that this method is not a correct way to get the address of calling cell.

e.g: If we have excel sheet with saved VBA functions, Once you reopen the sheet, the above method will not work.

please help

nimo

ashleedawg
  • 20,365
  • 9
  • 72
  • 105
Nimo
  • 291
  • 1
  • 3
  • 4

1 Answers1

28

You can use Application.Caller, but you would probably be best to pass the cell to the function.

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

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

To pass the cell:

 =SomeFunction(A1)

Where the code has:

SomeFunction(r)
Community
  • 1
  • 1
Fionnuala
  • 90,370
  • 7
  • 114
  • 152
  • Just found out that I asked the same question: [How do I find out which cell a VBA Function was called from](http://stackoverflow.com/questions/5559279/excel-cell-from-which-a-function-is-called) – Dan Dascalescu Apr 05 '11 at 22:34