沒有
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要返回只能透過變數
如
num = num + 1
其他地方:dim s:s = 0:a(s):msgbox "now s="&s
這裡a(s)把s的記憶體地址傳進了sub,然後sub裡面對這個num=num+1就相當於s=s+1了。
如果用function則可以寫成這樣:
a = num
其中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
沒有
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