Sub 过程与 Function 过程的相似之处是:它们都一个可以获取参数,执行一系列语句,以及改变其参数的值的独立过程。而与 Function 过程不同的是:带返回值的 Sub 过程不能用于表达式。 Function 过程是一个可以获取参数,执行一系列语句,以及改变其参数值的独立过程,而与子过程不同的是:当要使用该函数的返回值时,可以在表达式的右边使用 Function 过程,这与内部函数,诸如 Sqr、Cos 或 Chr 的使用方式一样。
'窗体上放一Command,名:Command1。下面代码拷到代码区 Option Explicit Dim e As Integer Private Sub Command1_Click()
MsgBox "Function FucNum(3,7)=" & FucNum(3, 7) Call subNum(3, 7) MsgBox "E=" & e End SubSub subNum(a As Integer, b As Integer) Dim c As Integer c = a * b '在此sub中的局部变量是无法返回的。 MsgBox "Sub subNum(" & a & "," & b & ")=" & c & vbCrLf & "Set The c's value to E" e = c '可以采用在sub中给全局变量赋值的方式来传递结果 End SubFunction FucNum(a As Integer, b As Integer) As Integer Dim c As Integer c = a * b M2num = c '注意 :函数名=返回值 ,这是函数返回结果的方法。 End Function
在VB中,如果没有返回值,则定义成一个过程:Sub 。如果有返回值,则定义成函数:Function 。定义一个全局过程,在模块中如下申明(可以带形参,也可以不带,没有返回值): Public sub MySub() 'Your Code End Sub定义一个全局函数,在模块中如下申明(可以带形参,也可以不带,但一定要有返回值): Public Function MyFunction() as String 'Your Code MyFunction = 你的返回值 '最后必须有这一句 End Function调用过程: Private sub Commnad1_click() call Mysub() end sub 调用函数: Private sub Commnad1_click() dim str1 as String str1 = MyFunction() end sub
sub 没有返回值
仅次而已 不知道对不对
Option Explicit
Dim e As Integer
Private Sub Command1_Click()
MsgBox "Function FucNum(3,7)=" & FucNum(3, 7)
Call subNum(3, 7)
MsgBox "E=" & e
End SubSub subNum(a As Integer, b As Integer)
Dim c As Integer
c = a * b '在此sub中的局部变量是无法返回的。
MsgBox "Sub subNum(" & a & "," & b & ")=" & c & vbCrLf & "Set The c's value to E"
e = c '可以采用在sub中给全局变量赋值的方式来传递结果
End SubFunction FucNum(a As Integer, b As Integer) As Integer
Dim c As Integer
c = a * b
M2num = c '注意 :函数名=返回值 ,这是函数返回结果的方法。
End Function
区别,在调用的时候,sub用call 语句加括号调用,function则放在赋值语
句的右边,当然你可以用调用sub的方法来调用function,只是这样你就自动
的放弃了返回值
变量=函数名(参数)
或
函数名 参数sub 无返回值,因此调用方式为:
过程名 参数
其中的一种运行正常,另一种往往会导致程序崩溃。
sub无返回值。
Public sub MySub()
'Your Code
End Sub定义一个全局函数,在模块中如下申明(可以带形参,也可以不带,但一定要有返回值):
Public Function MyFunction() as String
'Your Code
MyFunction = 你的返回值 '最后必须有这一句
End Function调用过程:
Private sub Commnad1_click()
call Mysub()
end sub
调用函数:
Private sub Commnad1_click()
dim str1 as String
str1 = MyFunction()
end sub
sub无返回值。
假如你的一段程序有时要注解掉.你可以用Sub过程,然后查找到之后.在前面加个'号就OK了
而在表达式中,要注释掉,则麻烦得多了.
sub无返回值。