从中调用函数的Excel单元格

我怎样才能得到我的VBA函数被调用的单元格?

换句话说,对于INDIRECT(ROW(),COLUMN()),什么是VBA等价物?

不是在寻找ActiveCell

我想要做的是有一个简单的函数ThisRow_Col(rColumn As String)返回它所调用的行的列X. 在B2中说我呼叫= ThisRow_Col(“A”),它应该返回A2的值。 这应该工作,不pipe哪个单元格活动。

编辑 :感谢查尔斯的答案: Application.Caller 。 以下代码获取当前行的列X,与所选内容无关:

 Function ThisRow_Col(rColumn As Range) ' Return INDIRECT(rcolumn & ROW()) ThisRow_Col = Application.Caller.Worksheet.Cells(Application.Caller.Row, rColumn.Column).Value End Function 

请注意,将列传递为Range( ThisRow_Col(A1) )比将其作为string传递更好,因为如果移动或插入列,Excel可以自动更新公式。 当然A11行只是一个约定。

Application.Caller返回从中调用UDF的范围对象。