Excel 公式中使用的自定义vba函数中当前单元格的范围
我想编写一个函数Excel 公式中使用的自定义vba函数中当前单元格的范围,excel,function,vba,formula,Excel,Function,Vba,Formula,我想编写一个函数Foo,可以在公式中使用它来返回所用单元格上方的单元格内容 例如,如果在单元格B2中,我写入=Foo()我想获取B1的内容 我知道我可以直接写=B1。显然,我在简化这个案例。 那么,这个函数是什么样子的呢 更准确地说,我希望(也)能够从其他函数中使用此函数(例如,将上面的单元格相乘的Bar(factor)函数,因此我可以编写=Bar(2))这通常是一个坏主意,因为您必须使函数不稳定,对计算产生连锁反应等 Public Function Foo() As Variant A
Foo
,可以在公式中使用它来返回所用单元格上方的单元格内容
例如,如果在单元格B2中,我写入=Foo()
我想获取B1的内容
我知道我可以直接写=B1
。显然,我在简化这个案例。
那么,这个函数是什么样子的呢
更准确地说,我希望(也)能够从其他函数中使用此函数(例如,将上面的单元格相乘的
Bar(factor)
函数,因此我可以编写=Bar(2)
)这通常是一个坏主意,因为您必须使函数不稳定,对计算产生连锁反应等
Public Function Foo() As Variant
Application.Volatile
Foo = Application.Caller.Offset(-1, 0)
End Function
这通常是一个坏主意,因为您必须使函数不稳定,并对计算产生连锁效应等
Public Function Foo() As Variant
Application.Volatile
Foo = Application.Caller.Offset(-1, 0)
End Function
这很有效
公共函数Foo()作为变量
Foo=Application.ThisCell.Offset(-1,0)
端函数
这很有效
公共函数Foo()作为变量
Foo=Application.ThisCell.Offset(-1,0)
端函数
您为什么要这样做,而不是,例如,=Foo(B1)
和=Bar(B1,2)
?硬编码相对单元格引用就像自找麻烦……为什么要这样做,而不是,例如,=Foo(B1)
和=Bar(B1,2)
?硬编码相对单元格引用就像自找麻烦……谢谢,也许你也能帮上忙?:谢谢,也许你也能帮上忙?:欢迎继续,谢谢你的回答!如果你能提供一个简洁的描述,这会很有帮助。请注意,这个函数不能正常工作:当下面的单元格更改时,它不会被重新计算,因为它引用了一个不在函数参数列表中的单元格:你需要使它不稳定以防止出现这种情况。欢迎继续,谢谢你的回答!如果你能提供一个简洁的描述来说明它是如何工作的,这会很有帮助。请注意,这个函数不能正常工作:当下面的单元格更改时,它不会被重新计算,因为它引用了一个不在函数参数列表中的单元格:你需要将它设置为不稳定的,以防止出现这种情况。