是否可以强制[UDF]用户定义函数在我们指定的单元格上返回结果? 换句话说:如果我在单元格 A1 中执行UDF,它将在 A2 单元格中返回结果,但如果我想更改 A2 ,该怎么办?另一个细胞?
答案 0 :(得分:0)
不直接....... UDF只会将值返回到它所在的单元格。您可以在工作表中包含Calculate事件宏。 Calculate宏可以响应UDF返回 A1 的值,并相应地更改 A2 。
另一种方法是让UDF返回一个数组,并将UDF放置为跨越 A1 和 A2
修改强>
这是一个让UDF填充多个单元格的简单示例。
在B1中,输入:7
安装以下UDF:
Public Function circlee(r As Double)
Dim ary(1 To 3, 1 To 1) As Double
ary(1, 1) = 2 * r
ary(2, 1) = WorksheetFunction.Pi() * 2 * r
ary(3, 1) = WorksheetFunction.Pi() * r * r
circlee = ary
End Function
然后点亮单元格A1到A3并键入数组公式:
= circlee(B1)
因为它是一个数组公式,所以必须使用 CNTRL-SHFT-ENTER 输入,而不是只输入 ENTER 键。
您应该在A1到A3的单元格中看到半径为B1的圆的直径,圆周和面积