公式中使用的自定义vba函数中当前单元格的范围

我想写一个可以在公式中使用的函数Foo来返回单元格的内容,

例如,如果在单元格B2中,我写=Foo()我想获得B1的内容。

我知道我可以直接写=B1 显然,我在这里简化了这个案子。

那么,这个函数是怎么样的。

更确切地说,我想(也)能够使用这个函数从其他函数(例如一个Bar(factor)函数乘以上面的单元格,所以我可以写=Bar(2)

这工作

 Public Function Foo() As Variant Foo = Application.ThisCell.Offset(-1, 0) End Function 

这通常是一个坏主意,因为你将不得不使这个函数变得不稳定,对计算等产生连锁效应。

 Public Function Foo() As Variant Application.Volatile Foo = Application.Caller.Offset(-1, 0) End Function