我們一般都是在重復(fù)使用一些功能的時(shí)候,例如循環(huán)輸出內(nèi)容、分頁(yè)的時(shí)候都會(huì)使用過(guò)程函數(shù)
Sub過(guò)程
Sub 過(guò)程是包含在 Sub 和 End Sub 語(yǔ)句之間的一組 VBScript 語(yǔ)句。如果 Sub 過(guò)程無(wú)任何參數(shù),則 Sub 語(yǔ)句必須包含空括號(hào) ()。
實(shí)例代碼如下:
Call GetName() '調(diào)用Sub過(guò)程
Sub GetName()
MsgBox "我是腳本之家" '輸出字符串
End Sub
Sub 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。實(shí)例代碼如下:
Call GetName("我是腳本之家") '調(diào)用Sub
Sub GetName(name)
MsgBox name '輸出字符串
End Sub
Sub過(guò)程是沒(méi)有返回值的哦!不然運(yùn)行報(bào)錯(cuò)誤的哦!?。?shí)例代碼如下:
getName "腳本之家" '調(diào)用過(guò)程
Sub getName(name)
getName = name '設(shè)置返回值
End Sub
運(yùn)行上面的腳本,將會(huì)出現(xiàn)下圖所示的錯(cuò)誤哦,請(qǐng)一定注意過(guò)程是不可以有返回值的
Function 過(guò)程
Function 過(guò)程是包含在 Function 和 End Function 語(yǔ)句之間的一組 VBScript 語(yǔ)句。Function 過(guò)程與 Sub 過(guò)程類似,如果 Function 過(guò)程無(wú)任何參數(shù),則 Function 語(yǔ)句必須包含空括號(hào) ()。實(shí)例代碼如下:
Call GetName() '調(diào)用Function
Function GetName()
MsgBox "這里是腳本之家" '輸出字符串
End Function
Function 過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。實(shí)例代碼如下:
Call GetName("這里是腳本之家") '調(diào)用Function
Function GetName(name)
MsgBox name '輸出字符串
End Function
Function 是有返回值的,通過(guò)函數(shù)名返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。Function 返回值的數(shù)據(jù)類型總是Variant。實(shí)例代碼如下:
getName "這里是腳本之家" '調(diào)用Function
Function getName(name)
getName = name '設(shè)置返回值
End Function
如何調(diào)用過(guò)程
調(diào)用 Function 過(guò)程時(shí),函數(shù)名必須用在變量賦值語(yǔ)句的右端或表達(dá)式中。
調(diào)用 Sub 過(guò)程時(shí),只需輸入過(guò)程名及所有參數(shù)值,參數(shù)值之間使用逗號(hào)分隔。不需使用 Call 語(yǔ)句,但如果使用了此語(yǔ)句,則必須將所有參數(shù)包含在括號(hào)之中。
下面的示例顯示了調(diào)用過(guò)程的兩種方式。一種使用 Call 語(yǔ)句;另一種則不使用。兩種方式效果相同。
getName "腳本之家" '調(diào)用過(guò)程的第一種寫(xiě)法
Call getName("我是mdxy") '調(diào)用過(guò)程的第二種寫(xiě)法
Sub getName(name)
MsgBox "我是"name
End Sub
切記Sub與Function的區(qū)別:
Sub沒(méi)有返回值,而Function有返回值。
Sub不能放在表達(dá)式中,而Function可以。