📅  最后修改于: 2021-01-11 14:18:53             🧑  作者: Mango
函数是一段执行特定任务并返回结果的代码。函数主要用于执行重复性任务,例如执行计算,格式化输出数据等。
在VBA中,您可以创建可以在工作表中使用的函数或用户定义函数,就像常规函数一样。
当现有的excel函数还不够时,这将非常有用。在这些情况下,您可以创建自定义的用户定义函数来满足您的特定需求。
您可以将函数放入模块中。让我们一步一步看:
步骤1:转到“开发人员”复选框。
步骤2:单击Visual Basic编辑器。
步骤3:然后点击“插入”按钮。
步骤4:选择Module(模块)选项。
Private Function FunctionName (ByVal arg1 As Integer, ByVal arg2 As Integer)
FunctionName = arg1 + arg2
End Function
例如,在下面的代码中假设一个名为Sum的函数,例如:
Private Function Sum (x As Double, y As Double) As Double
Area = x + y
End Function
说明:在此示例中,函数具有两个参数(双精度类型)和一个返回类型(也为双精度类型)。函数名称为Sum,表示要返回的结果,例如(x + y)。
现在,您可以在代码中的其他位置使用此函数,只需仅使用函数名称(Sum)并为每个参数指定一个值即可。
在您的工作表上插入一个命令按钮,并添加以下代码。
Dim z As Double
z = Sum (4, 8) + 3
MsgBox z
说明:您可以使用另一个变量z来存储结果。该函数返回一个值,因此您必须在代码中捕获这些值。另外,您可以向该变量添加另一个值。使用MsgBox显示值。
单击工作表上的命令按钮后,您将得到以下结果。
函数与子例程非常相似。函数和子例程之间的唯一区别是,函数在调用时会返回值,但是子例程在调用时不会返回值。
假设您要查找区域,因此需要创建一个函数,该函数接受可以使用函数名称本身返回的值。
步骤1:将命令按钮添加到工作表。
1.然后设置“命令”按钮的“名称”属性。
2.设置命令按钮的标题属性。
3.现在,界面如下图所示。
步骤2:打开代码窗口并编写以下代码。
Private Function Area(Length As Double, Optional Width As Variant)
If IsMissing(Width) Then
Area = Length * Length
Else
Area = Length * Width
End If
End Function
步骤3:编写调用函数的代码。
Private Sub btnAreaFunction_Click()
MsgBox Area(5, 9)
End Sub
步骤4:运行上面的代码,您将获得以下输出,如下面的屏幕快照所示。