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 关键字,则也必须省略参数两边的括号。
二者都可传值:function:Function thisbbs() As String thisbbs = "csdn" End Function Private Sub Command1_Click() MsgBox thisbbs End Sub sub:Sub getthisbbs(ByRef x As String) x = "csdn" End Sub Private Sub Command2_Click() Dim x As String getthisbbs x MsgBox x End Sub
//是不是有返回值的就用function? 没有返回值的就用sub? sub和function中是不是都可以有参数传递的?楼主的想法是正确的但 northwolves(狼行天下) 提到了 Sub getthisbbs(ByRef x As String) x = "csdn" End Sub这个sub 里按地址传值 间隔传值 作用同function 可以让我们学习下byref的用法
所有sub的时候需要call
function则直接写
所有sub的时候需要call
function则直接写
------------------------------
这种说法不对sub 可以用call方式调用,
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
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 关键字,则也必须省略参数两边的括号。
thisbbs = "csdn"
End Function
Private Sub Command1_Click()
MsgBox thisbbs
End Sub
sub:Sub getthisbbs(ByRef x As String)
x = "csdn"
End Sub
Private Sub Command2_Click()
Dim x As String
getthisbbs x
MsgBox x
End Sub
2.sub 可以用call方式调用,
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
没有返回值的就用sub?
sub和function中是不是都可以有参数传递的?楼主的想法是正确的但 northwolves(狼行天下) 提到了
Sub getthisbbs(ByRef x As String)
x = "csdn"
End Sub这个sub 里按地址传值 间隔传值 作用同function 可以让我们学习下byref的用法
也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
//这样的说法是MS自己出的设计实务写的国内对此一点都不注意,反正都能用是吧
function注重结果
举个例子:
A=sin(3.14159)
sin()就是一个函数,它返回的结果值被赋予了变量A,只不过它是由VB自带的,而当遇到一些需要我们自己定义的算法时,并且经常需要用到的时候,我们就只能自己写一个函数了。
LOAD form1
Load就是一个过程,它不会返回一个结果,它只是做一些事,它也是由VB自己带的,当我们要进行一些经常需要重复的动作时,就将它们定义为一个过程,以便反复调用。