您现在的位置: Gufang > 博客 > 学无止境 > 正文
sub过程与function函数的区别

摘 要:很多人对sub过程与function函数的区别很迷糊,现举例讲解:

正 文:

function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有

function   可以用自身名字返回一个值,sub   需定义别的变量,用传址方式传回值。  


  Sub   过程与Function   过程的区别:      

  1.   Sub   过程定义时无需定义返回值类型,而Function   过程一般需要用“As   数据类型”   定义函数返回值类型。      

  2.   Sub   过程中没有对过程名赋值的语句,而Function   过程中一定有对函数名赋值的语句。      

  3.   调用过程:调用   Sub   过程与   Function   过程不同。调用   Sub   过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub   过程还有一点与函数不一样,它不会用名字返回一个值。但是,与   Function过程一样,Sub   过程也可以修改传递给它们的任何变量的值。      

  4.   调用   Sub   过程有两种方法:      

  以下两个语句都调用了名为   MyProc   的   Sub   过程。    

  Call     MyProc   (FirstArgument,   SecondArgument)      

  MyProc     FirstArgument,   SecondArgument


注意当使用   Call   语法时,参数必须在括号内。若省略   Call   关键字,则也必须省略参数两边的括号。

在VBA中,子过程与函数过程只有一处区别(要学好VBA一定要记住),区别就是:子过程没有返回值,函数过程有返回值。

子过程用于编写一些代码的集合,函数过程用于建立函数。我举个例吧。

例如,我要做多处要做如下事件,我只要编写一个子过程,在其它事件下,我只要把子过程的名称写下就行了。


Private Sub ABC(A As Integer, B As Integer, C As Integer)

    A = 1

    B = 1

    C = 1

End Sub


Private Sub Command1_Click()

ABC '按扭一就调用了该子过程了,而不用再写子过程的代码。

End Sub


Private Sub Command2_Click()

ABC '按扭二就调用了该子过程了,而不用再写子过程的代码。

End Sub


Private Sub Command3_Click()

ABC '按扭三就调用了该子过程了,而不用再写子过程的代码。

End Sub


函数例子:

如我要多处运用C=A+B这个算法,我可以编写这个函数:

Private Function C (A As Integer, B As Integer) As Integer

C = A + B

End Function


Private Sub Command1_Click()

Text1.Text = C(5, 3) '这里就运用了函数C来计算5+3了。

End Sub


Private Sub Command2_Click()

Text1.Text = C(4, 2) '这里就运用了函数C来计算4+2了。

End Sub

发表评论(0)
姓名 *
电子邮件
QQ
评论内容 *
验证问题 * 江苏省的省会是哪个城市?请填写正确答案
验证码 * 图片看不清?点击重新得到验证码