vb中function和sub的区别

 我来答
光临光临
推荐于2018-06-16 · TA获得超过171个赞
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:107万
展开全部
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 关键字,则也必须省略参数两边的括号。
zgwxm
2011-12-17 · 经典歌曲、名人名家歌曲视频
zgwxm
采纳数:1792 获赞数:21142

向TA提问 私信TA
展开全部
其实这个问题我以前也想过,但是没有仔细梳理。我认为,两者没有本质的区别,同样一个任务,两者都能完成。比如:
Private Sub Command1_Click()
Sub2
End Sub
Private Sub Command2_Click()
Fun2
End Sub
Private Sub Sub2()
MsgBox "其实,函数与过程是没有本质区别的!"
End Sub
Private Function Fun2()
MsgBox "其实,函数与过程是没有本质区别的!"
End Function
两者运行结果是相同的。但是好像又有些区别。比如:
Private Sub Sub1(IntSs As Long, BSsYN As Boolean)
Dim I As Long, J As Long
BSsYN = True
For I = 2 To Sqr(IntSs)
If IntSs Mod I = 0 Then
BSsYN = False
Exit Sub
End If
Next I
End Sub
Private Function Fun1(IntSs As Long) As Boolean
Dim I As Long, J As Long
Fun1 = True
For I = 2 To Sqr(IntSs)
If IntSs Mod I = 0 Then
Fun1 = False
Exit Function
End If
Next I
End Function
Private Sub Command3_Click()
Dim BSsYesNo As Boolean
Sub1 25, BSsYesNo
If BSsYesNo Then MsgBox 25 & "是素数" Else MsgBox 25 & "不是素数"
Sub1 47, BSsYesNo
If BSsYesNo Then MsgBox 47 & "是素数" Else MsgBox 47 & "不是素数"
End Sub
Private Sub Command4_Click()
If Fun1(25) Then MsgBox 25 & "是素数" Else MsgBox 25 & "不是素数"
If Fun1(47) Then MsgBox 47 & "是素数" Else MsgBox 47 & "不是素数"
End Sub
这两者运行的结果也是一样的,但是,好像函数的调用更为方便些。我有这样一个认识,函数比过程更强大些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sailingzyf
推荐于2017-09-14 · TA获得超过1329个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:1057万
展开全部
函数允许带个返回值,过程没有。
function sum(a,b) as integer
sum=a+b
end function
sub就不行了,只能执行一堆语句而没有带回的值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式