sub没有返回值 function有返回值 比如 sub a(num as integer) end sub 那么你不能dim s:s = a(123) 而如果 function a(num as integer) end function 你就可以 dim s:s = a(123) 返回值: 如果sub要返回只能通过变量 如 sub a(num as integer) num = num + 1 end sub 其他地方:dim s:s = 0:a(s):msgbox "now s="&s 这里a(s)把s的内存地址传进了sub,然后sub里面对这个num=num+1就相当于s=s+1了。 如果用function则可以写成这样: function a(num as integer) num = num + 1 a = num end function 其中a=num这里a就是过程名 外部使用: dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s call a(s):function也具有传内存地址的功能,当然function还有返回值:s = a(s)。 具体返回值类型: [Private | Public] Function 函数名字 (参数) As 返回值类型 说白了 sub是一个过程 给了它内容不能直接返回一个内容的,只能间接;而function是一个函数,例如数学中函数y=kx,其中输入x那么y就是kx的值,这里也一样,有返回值(如把y=2x写成VB的函数就是: function y(x as integer) as integer y = 2x end function参考: http://zhidao.baidu.com/question/75508779.html
sub是一个过程,只要求执行完毕
function是一个函数,要有返回的值