在没有参数的自定义函数中添加两个单元格
Add two cells in Custom Function without Parameters
我正在努力为 Excel 学习 VBA。我在 VBA 中观看了有关自定义函数/用户定义函数的教程。我试图创建一个用户定义的函数,但它在我键入函数名称的单元格中显示 #REF!
错误。我正在尝试添加 (A Cell + B Cell
),而不将任何 argument/parameter 传递给函数。我正在使用 Offset 遍历具有公式功能的 Cell 左侧的 1,2 个单元格。这是我的代码:
Option Explicit
Function ADD12()
Dim Number_1 As Integer
Dim Number_2 As Integer
Number_2 = ActiveCell.Offset(0, -2).Value
Number_1 = ActiveCell.Offset(0, -1).Value
ADD12 = Number_1 + Number_2
End Function
以及我的工作表截图:
#REF
错误是因为您不能将单元格地址用作函数名称。
但还要注意,ActiveCell 会一直在变化。您可能需要查看 Caller
以获取函数所在的单元格。
例如:
Option Explicit
Function ADD_12()
Dim Number_1 As Integer
Dim Number_2 As Integer
Dim R As Range
Set R = Application.Caller
Number_2 = R.Offset(0, -2).Value
Number_1 = R.Offset(0, -1).Value
ADD_12 = Number_1 + Number_2
End Function
您遇到的问题是您为 UDF 选择的名称是非法的。
ADD12
是工作表上单元格的地址。这保证了引用错误并且您的 UDF 永远不会被调用。
将名称更改为不是单元格地址的名称,例如 ADD12_
。
Caller
是执行您想要的操作的正确方法,除非您真的希望它从所选单元格计算。这些方法中的任何一种都保证您的函数是非易失性的,这意味着如果您更改其中一个依赖值,它不会自动更新结果。
您应该使用 Long 变量类型而不是 Integers。
我正在努力为 Excel 学习 VBA。我在 VBA 中观看了有关自定义函数/用户定义函数的教程。我试图创建一个用户定义的函数,但它在我键入函数名称的单元格中显示 #REF!
错误。我正在尝试添加 (A Cell + B Cell
),而不将任何 argument/parameter 传递给函数。我正在使用 Offset 遍历具有公式功能的 Cell 左侧的 1,2 个单元格。这是我的代码:
Option Explicit
Function ADD12()
Dim Number_1 As Integer
Dim Number_2 As Integer
Number_2 = ActiveCell.Offset(0, -2).Value
Number_1 = ActiveCell.Offset(0, -1).Value
ADD12 = Number_1 + Number_2
End Function
以及我的工作表截图:
#REF
错误是因为您不能将单元格地址用作函数名称。
但还要注意,ActiveCell 会一直在变化。您可能需要查看 Caller
以获取函数所在的单元格。
例如:
Option Explicit
Function ADD_12()
Dim Number_1 As Integer
Dim Number_2 As Integer
Dim R As Range
Set R = Application.Caller
Number_2 = R.Offset(0, -2).Value
Number_1 = R.Offset(0, -1).Value
ADD_12 = Number_1 + Number_2
End Function
您遇到的问题是您为 UDF 选择的名称是非法的。
ADD12
是工作表上单元格的地址。这保证了引用错误并且您的 UDF 永远不会被调用。
将名称更改为不是单元格地址的名称,例如 ADD12_
。
Caller
是执行您想要的操作的正确方法,除非您真的希望它从所选单元格计算。这些方法中的任何一种都保证您的函数是非易失性的,这意味着如果您更改其中一个依赖值,它不会自动更新结果。
您应该使用 Long 变量类型而不是 Integers。