Sub子过程与Function函数过程有什么区别?

 我来答
韧劲9
推荐于2018-03-11 · TA获得超过9223个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:345万
展开全部
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 关键字,则也必须省略参数两边的括号。

区别就是:子过程没有返回值,函数过程有返回值。
子过程用于编写一些代码的集合,函数过程用于建立函数。我兴个例吧。
例如,我要做多处要做如下事件,我只要编写一个子过程,在其它事件下,我只要把子过程的名称写下就行了。
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
默念151
推荐于2017-09-26 · TA获得超过126个赞
知道答主
回答量:124
采纳率:100%
帮助的人:120万
展开全部
vb编程 Function与Sub有什么区别? 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 关键字,则也必须省略参数两边的括号。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友187d97d
2021-08-27
知道答主
回答量:2
采纳率:0%
帮助的人:810
展开全部
在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。

Sub 过程
Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。

下面的 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript 创建的 Function 过程完成。此过程在以下讨论之后演示。

Sub ConvertTemp()
temp = InputBox("请输入华氏温度。", 1)
MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
End Sub
Function 过程
Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

在下面的示例中,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。

Sub ConvertTemp()
temp = InputBox("请输入华氏温度。", 1)
MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
End Sub

Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
过程的数据进出
给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees 是传递给 Celsius 函数的值的占位符:

Function Celsius(fDegrees)
Celsius = (fDegrees - 32) * 5 / 9
End Function
要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值。

在代码中使用 Sub 和 Function 过程
调用 Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。例如:

Temp = Celsius(fDegrees)


MsgBox "温度为 " & Celsius(fDegrees) & " 摄氏度。"
调用 Sub 过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用 Call 语句,但如果使用了此语句,则必须将所有参数包含在括号之中。

下面的示例显示了调用 MyProc 过程的两种方式。一种使用 Call 语句;另一种则不使用。两种方式效果相同。

Call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
请注意当不使用 Call 语句进行调用时,括号被省略。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式