谁能详细的告诉我function和sub的调用区别!!!另外可以举一个例子能一目了然的说明他们的区别吗?

解决方案 »

  1.   

    function 有返回值
    sub 没有返回值
    仅次而已 不知道对不对
      

  2.   

    Sub 过程与 Function 过程的相似之处是:它们都一个可以获取参数,执行一系列语句,以及改变其参数的值的独立过程。而与 Function 过程不同的是:带返回值的 Sub 过程不能用于表达式。 Function 过程是一个可以获取参数,执行一系列语句,以及改变其参数值的独立过程,而与子过程不同的是:当要使用该函数的返回值时,可以在表达式的右边使用 Function 过程,这与内部函数,诸如 Sqr、Cos 或 Chr 的使用方式一样。
      

  3.   

    '窗体上放一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
      

  4.   

    function,有返回值称为子函数sub,没有返回值称为子过程,这是最重要的
    区别,在调用的时候,sub用call 语句加括号调用,function则放在赋值语
    句的右边,当然你可以用调用sub的方法来调用function,只是这样你就自动
    的放弃了返回值
      

  5.   

    fun有返回值,因此调用方式为:
    变量=函数名(参数)

    函数名 参数sub 无返回值,因此调用方式为:
    过程名 参数
      

  6.   

    在作为API得回调函数的时候,这两种声明往往会有很大差别。
    其中的一种运行正常,另一种往往会导致程序崩溃。
      

  7.   

    function有返回值
    sub无返回值。
      

  8.   

    在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
      

  9.   

    function有返回值
    sub无返回值。
      

  10.   

    另外还有其它作用 .
    假如你的一段程序有时要注解掉.你可以用Sub过程,然后查找到之后.在前面加个'号就OK了
    而在表达式中,要注释掉,则麻烦得多了.
      

  11.   

    function有返回值
    sub无返回值。