是不是有返回值的就用function?
没有返回值的就用sub?
sub和function中是不是都可以有参数传递的?

解决方案 »

  1.   

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

  2.   

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

  3.   

    function有返回数值,sub没有
    所有sub的时候需要call  
    function则直接写
      

  4.   

    应用程序是由模块组成的,而模块含有事件过程和通用过程。过程分为两类:一类是Sub过程(也称子过程),无返回值;另一类是Function过程(也称函数过程),有返回值。
      

  5.   

    function有返回数值,sub没有
    所有sub的时候需要call  
    function则直接写
    ------------------------------
    这种说法不对sub 可以用call方式调用,
    也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
      

  6.   

    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 关键字,则也必须省略参数两边的括号。  
      

  7.   

    二者都可传值: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
      

  8.   

    1.function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有
    2.sub 可以用call方式调用,
    也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
      

  9.   

    //是不是有返回值的就用function?
    没有返回值的就用sub?
    sub和function中是不是都可以有参数传递的?楼主的想法是正确的但 northwolves(狼行天下) 提到了
    Sub getthisbbs(ByRef x As String)
    x = "csdn"
    End Sub这个sub 里按地址传值  间隔传值 作用同function 可以让我们学习下byref的用法
      

  10.   

    它们还有一个区别就是名字不一样,一个叫function,一个叫 Sub
      

  11.   

    这种说法不对sub 可以用call方式调用,
    也可以不用call,但这时要去掉括号,function 不要返回值时也可以这样调用
    //这样的说法是MS自己出的设计实务写的国内对此一点都不注意,反正都能用是吧
      

  12.   

    sub注重过程
    function注重结果
      

  13.   

    function是函数可以返回一个结果,而sub则没有返回值。
    举个例子:
    A=sin(3.14159) 
    sin()就是一个函数,它返回的结果值被赋予了变量A,只不过它是由VB自带的,而当遇到一些需要我们自己定义的算法时,并且经常需要用到的时候,我们就只能自己写一个函数了。
    LOAD form1 
    Load就是一个过程,它不会返回一个结果,它只是做一些事,它也是由VB自己带的,当我们要进行一些经常需要重复的动作时,就将它们定义为一个过程,以便反复调用。
      

  14.   

    function 可以有也可以没有返回值,而sub是一定有返回值