Excel公式改变另一个单元格的值?

时间:2013-09-17 16:29:18

标签: c# excel user-defined-functions

是否可以强制[UDF]用户定义函数在我们指定的单元格上返回结果? 换句话说:如果我在单元格 A1 中执行UDF,它将在 A2 单元格中返回结果,但如果我想更改 A2 ,该怎么办?另一个细胞?

1 个答案:

答案 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的圆的直径,圆周和面积