从中调用函数的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可以自动更新公式。 当然A1
的1
行只是一个约定。
Application.Caller
返回从中调用UDF的范围对象。