例如,表達(dá)式 (3>2) And (3<4)的結(jié)果為True,表達(dá)式(3>2) And (3>4)的結(jié)果為False,而表達(dá)式(3>2) And Null的結(jié)果為Null,表達(dá)式(3>4) And Null的結(jié)果為False。 與運(yùn)算符還可以對(duì)數(shù)值進(jìn)行運(yùn)算操作,如果兩個(gè)操作數(shù)是數(shù)值的話,那么VBScript先將其轉(zhuǎn)化為二進(jìn)制,再?gòu)淖畹臀婚_(kāi)始,按位進(jìn)行與運(yùn)算,最后再將運(yùn)算的結(jié)果以十進(jìn)制的形式返回。運(yùn)算的時(shí)候遵循以下規(guī)則:只有1 And 1的結(jié)果為1,否則,結(jié)果均為0。例如,4 And 3的結(jié)果是0,因?yàn)?的二進(jìn)制形式是100,而3的二進(jìn)制形式是011,按位與操作之后結(jié)果是000,所以返回結(jié)果是0。 2.5.3.2 或運(yùn)算符(Or) 在執(zhí)行邏輯或運(yùn)算的過(guò)程中,只有當(dāng)兩個(gè)操作數(shù)均為False的時(shí)候,返回結(jié)果才為False,如果有一個(gè)操作數(shù)為True,則返回結(jié)果為True。當(dāng)然,也存在操作數(shù)為Null的情況,在表2.6中列舉了邏輯或運(yùn)算的條件和結(jié)果: 表2.6 邏輯或運(yùn)算的條件和結(jié)果 左操作數(shù) 右操作數(shù) 邏輯運(yùn)算結(jié)果 True True True True False True False True True False False False True Null True Null True True False Null Null Null False Null Null Null Null
例如,表達(dá)式 (2>3) Or (3>4)的結(jié)果為False,表達(dá)式(2<3) Or (3>4)的結(jié)果為True,而表達(dá)式(3>4) Or Null的結(jié)果為Null,表達(dá)式(2<3) Or Null的結(jié)果為True。 當(dāng)或運(yùn)算符對(duì)數(shù)值進(jìn)行運(yùn)算的時(shí)候,對(duì)于二進(jìn)制數(shù)的每一位進(jìn)行或運(yùn)算,運(yùn)算的時(shí)候遵循以下規(guī)則:只有0 Or 0的結(jié)果為0,其他情況下結(jié)果均為1。例如,4 Or 3的結(jié)果是7,因?yàn)?的二進(jìn)制形式是100,而3的二進(jìn)制形式是011,按位與操作之后結(jié)果是111,所以返回結(jié)果是7。 2.5.3.3 非運(yùn)算符(Not) 非運(yùn)算符只有一個(gè)操作數(shù),在執(zhí)行邏輯非運(yùn)算的過(guò)程中,如果操作數(shù)為True,返回結(jié)果False;如果操作數(shù)為False,返回結(jié)果為True;如果操作數(shù)為Null,則返回結(jié)果也為Null,如表2.7所示: 表2.7 邏輯非運(yùn)算的條件和結(jié)果 操作數(shù) 邏輯運(yùn)算結(jié)果 True False False True Null Null
3.1.1.1 使用If...Then...Else語(yǔ)句 VBScript中最常用的條件語(yǔ)句就是If…Then…Else語(yǔ)句,一般If…Then…Else語(yǔ)句用來(lái)檢查一個(gè)布爾條件,然后根據(jù)結(jié)果為True或者False執(zhí)行相應(yīng)的腳本,如果為True,則執(zhí)行Then后面的腳本,如果為False,則執(zhí)行Else后面的腳本。 If…Then…Else語(yǔ)句有兩種形式:?jiǎn)涡行问胶投嘈行问?也稱塊形式),單行形式中整條語(yǔ)句都需要在一行中完成,其中也包括條件和判斷后執(zhí)行的腳本,其語(yǔ)法如下所示: If condition Then statements [Else elsestatements] 多行形式的語(yǔ)法如下所示: If condition Then statements [Else elsestatements] End If 其中,condition是測(cè)試條件,statements是條件為True的情況下所執(zhí)行的腳本,elsestatements是條件為False的情況下所執(zhí)行的腳本,如果條件為Null,那么執(zhí)行的腳本仍然是elsestatements。通常情況下,測(cè)試條件是使用比較運(yùn)算符對(duì)值或變量進(jìn)行比較的表達(dá)式。在這兩種語(yǔ)法中,Else都是可選的,如果沒(méi)有Else,則表明如果判斷條件為True,執(zhí)行Then后面的腳本,如果條件為False,則不執(zhí)行任何腳本。 注意:在多行形式中,語(yǔ)句結(jié)束的最后一行中有一句End If,而單行形式則不需要。 對(duì)于比較短小而簡(jiǎn)單的測(cè)試,我們可以使用單行形式。例如,如果學(xué)生成績(jī)大于60分,則判定成績(jī)?yōu)镻ass,否則判定其成績(jī)?yōu)镕ail,如以下腳本所示: If Score >= 60 Then Status = “Pass” Else Status = “Fail” 不過(guò),在編寫腳本的過(guò)程中,多行形式比單行形式的結(jié)構(gòu)化更強(qiáng),更加容易閱讀、維護(hù)和調(diào)試。對(duì)于上面單行形式的語(yǔ)句,我們可以改寫為多行形式如下: If Score >= 60 Then Status = “Pass” Else Status = “Fail” End If 在VBScript中,還可以擴(kuò)展If…Then…Else語(yǔ)句的功能,通過(guò)添加ElseIf子句,我們可以對(duì)多個(gè)條件進(jìn)行判斷和分支選擇,其語(yǔ)法如下所示: If condition Then statements ElseIf conditin-n Then elseifstatements Else elsestatements End If
Sub ReportValue(value) If value = 0 Then MsgBox value ElseIf value = 1 Then MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox "Value out of range!" End If
用戶可以根據(jù)需要加上多個(gè)ElseIf子句以提供其它選項(xiàng)。但是,有時(shí)ElseIf子句用得太多,也常常會(huì)變成一種麻煩。經(jīng)常我們所采用的方法是使用可以進(jìn)行多種選擇的Select Case語(yǔ)句。 3.1.1.2 使用Select Case 語(yǔ)句 如果需要實(shí)現(xiàn)多重分支選擇,一般我們使用Select Case語(yǔ)句,而不使用If…Then…Else語(yǔ)句,盡管后者也完全能夠?qū)崿F(xiàn)這些功能。Select Case語(yǔ)句的功能就是根據(jù)表達(dá)式的值執(zhí)行幾組腳本當(dāng)中的一組。其語(yǔ)法如下所示: Select Case testexpression Case expressionlist statements… Case Else expressionlist elsestatements End Select 其中,testexpression是語(yǔ)句的判斷條件,可以是任何數(shù)值或者字符串表達(dá)式,expressionlist則是可能出現(xiàn)的表達(dá)式的值,statements和elsestatements是根據(jù)表達(dá)式結(jié)果執(zhí)行的腳本。 如果testexpression的表達(dá)式結(jié)果和某一個(gè)Case子句中列舉的值相符合,那么則執(zhí)行這一個(gè)Case子句和下一個(gè)Case子句之間的腳本,如果和任何列舉出的值都不符合,則執(zhí)行Case Else子句和End Select之間的腳本,如果再?zèng)]有Case Else語(yǔ)句,那么將會(huì)直接執(zhí)行End Select之后的腳本。如果表達(dá)式的結(jié)果和多個(gè)Case子句中的值相符合,則只會(huì)執(zhí)行第一個(gè)匹配后的語(yǔ)句。 其實(shí),Select Case語(yǔ)句提供了除了 If...Then...ElseIf 以外的另外一種條件語(yǔ)句的形式,可允許用戶從多個(gè)語(yǔ)句塊中作出一個(gè)選擇,并執(zhí)行相應(yīng)的語(yǔ)句。Select Case 語(yǔ)句提供的功能和 If...Then...Else 語(yǔ)句類似,但它可使整個(gè)程序代碼行執(zhí)行起來(lái)更加的有效率,而且也提高了程序的可讀性。 Select Case語(yǔ)句在其前端,即Select Case子句后有一個(gè)測(cè)試運(yùn)算式,這個(gè)運(yùn)算式只會(huì)被執(zhí)行一次。執(zhí)行完后的結(jié)果將被用來(lái)和每一個(gè) Case子句的值作比較。如果有相符的情況時(shí),這個(gè)Case 子句后的語(yǔ)句塊就將被執(zhí)行,注意下面這個(gè)例子:
Select Case Document.Form1.CardType.Options(SelectedIndex).Text Case "MasterCard" DisplayMCLogo ValidateMCAccount Case "Visa" DisplayVisaLogo ValidateVisaAccount Case "American Express" DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else DisplayUnknownImage PromptAgain End Select
Sub ChkFirstWhile() Dim counter, myNum counter = 0 myNum = 20 Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "The loop made " & counter & " repetitions." End Sub
Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox "The loop made " & counter & " repetitions." End Sub
Sub ChkFirstUntil( ) Dim counter, myNum counter = 0 myNum = 20 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "The loop made " & counter & " repetitons." End Sub
Sub ChkLastUntil() Dim counter, myNum counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox "The loop made " & counter & " repetitions." End Sub
Sub ExitExample() Dim counter, myNum counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox "The loop made " & counter & " repetitions." End Sub
3.1.2.3 While…Wend語(yǔ)句 While…Wend語(yǔ)句和Do…Loop語(yǔ)句十分類似,但不如Do…Loop語(yǔ)句那樣靈活,在While…Wend語(yǔ)句中,如果條件為True,則執(zhí)行循環(huán)內(nèi)腳本。其語(yǔ)法如下所示: While condition statements Wend 其中,conditin是循環(huán)執(zhí)行條件,statements是循環(huán)內(nèi)執(zhí)行的腳本。 While…Wend語(yǔ)句的執(zhí)行步驟如下所示: 1. 判斷condition是否為True,如果為True,則進(jìn)入步驟2執(zhí)行循環(huán)內(nèi)腳本,如果為False或者為Null,則跳出循環(huán); 2. 執(zhí)行循環(huán)中腳本,然后返回步驟1。 與Do … Loop語(yǔ)句不同的是,While循環(huán)語(yǔ)句沒(méi)有任何可以跳離循環(huán)的語(yǔ)句,用戶不能想當(dāng)然地使用Exit While語(yǔ)句。 不過(guò),和Do…Loop語(yǔ)句比較而言,While…Wend語(yǔ)句的靈活性要差一些,腳本的清晰程度則是相同的,所以我們建議,在同樣的情況下,還是使用Do…Loop語(yǔ)句。 3.1.2.4 For Each…Next語(yǔ)句 For Each…Next語(yǔ)句和上述三個(gè)循環(huán)語(yǔ)句都有所不同,它既不指定循環(huán)執(zhí)行的次數(shù),也不指定循環(huán)結(jié)束條件,而是對(duì)數(shù)組和集合中的元素進(jìn)行枚舉,當(dāng)枚舉結(jié)束之后才會(huì)退出循環(huán)。其語(yǔ)法如下所示: For Each element In group statements Next 其中,group是我們進(jìn)行枚舉的數(shù)組或者集合,element是枚舉變量的名稱,statements是對(duì)于每個(gè)元素都會(huì)執(zhí)行的循環(huán)腳本。 For Each...Next和For...Next循環(huán)非常相似。它們的不同之處在于,F(xiàn)or Each...Next循環(huán)是針對(duì)集合對(duì)象中的每一個(gè)對(duì)象或數(shù)組中的每一個(gè)元素重復(fù)執(zhí)行一次循環(huán),而ForEach...Next循環(huán)語(yǔ)句是依指定的數(shù)字重復(fù)執(zhí)行循環(huán)的次數(shù)。當(dāng)用戶不知道集合對(duì)象中有幾個(gè)元素時(shí),F(xiàn)or Each...Next循環(huán)語(yǔ)句將會(huì)特別的有用。 在下面的HTML程序范例中,Dictionary對(duì)象的功能是要將文字放到數(shù)個(gè)文本框中:
<HTML> <HEAD> <TITLE>簡(jiǎn)單例子</TITLE> </HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- Sub btnFill_OnClick Dim d ‘定義一個(gè)對(duì)象變量 Set d = CreateObject("Scripting.Dictionary") ‘建立一個(gè)Dictionary對(duì)象 d.Add "0", "Sanders" ‘將有關(guān)信息放入該對(duì)象之中 d.Add "1", "Shirley" d.Add "2", "Winfred"
For Each I in d Document.Form.Elements(I).Value = D.Item(I) ‘將文字放入文本框之中 Next End Sub --> </SCRIPT> <BODY> <CENTER> <FORM NAME="Form"
<Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Button" NAME=btnFill VALUE="填入信息"><p> </FORM> </CENTER> </BODY> </HTML>
<HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <TITLE></TITLE> <SCRIPT LANGUAGE="VBScript"> <!-- Function FillterNum(NumValue) If (IsNumeric(NumValue)) Then FillterNum = NumValue Else FillterNum = 0 End If End Function
Function AddSum(ByRef Value1, ByRef Value2) AddSum = Value1 + Value2 Value1 = Value1 + 1 Value2 = Value2 + 2 End Function
Sub btnSum_onClick() Dim a,b a = FillterNum(txtValue1.value) b = FillterNum(txtValue2.value) txtSum.value = AddSum(a,b) txtValue1.value = a txtValue2.value = b End Sub --> </SCRIPT> </HEAD> <BODY>
3.2.4.2 Function語(yǔ)句 該語(yǔ)句用于聲明Function過(guò)程的名稱、參數(shù)以及構(gòu)成其主體的代碼。 如果在該語(yǔ)句中沒(méi)有明確指定使用Public或Private,則Function過(guò)程默認(rèn)為公用,即它們對(duì)于Script中的所有其他過(guò)程是可見(jiàn)和可用的。Function中局部變量的值在對(duì)過(guò)程的調(diào)用中不被保留。 此外,所有可執(zhí)行的代碼必須包含于過(guò)程中,用戶不能在另一個(gè)Function或Sub過(guò)程中定義Function過(guò)程。 使用Exit Function語(yǔ)句可以從Function過(guò)程中立即退出,而程序?qū)⒗^續(xù)執(zhí)行調(diào)用Function過(guò)程的語(yǔ)句之后的語(yǔ)句。用戶可在Function過(guò)程的任何位置出現(xiàn)任意個(gè)Exit Function語(yǔ)句。 與Sub過(guò)程類似,F(xiàn)unction過(guò)程是可以獲取參數(shù)、執(zhí)行一系列語(yǔ)句并改變其參數(shù)值的獨(dú)立過(guò)程。與Sub過(guò)程的不同之處是:當(dāng)要使用由函數(shù)返回的值時(shí),可以在表達(dá)式的右邊使用Function過(guò)程,這與內(nèi)部函數(shù)的使用方式一樣,例如Sqr、Cos或Chr。 在表達(dá)式中,可以通過(guò)使用函數(shù)名,并在其后用圓括號(hào)給出相應(yīng)的參數(shù)列表來(lái)調(diào)用Function過(guò)程。有關(guān)調(diào)用Function過(guò)程的詳細(xì)信息,請(qǐng)參閱Call語(yǔ)句。 需要注意的是,F(xiàn)unction過(guò)程可以是遞歸的,即該過(guò)程可以調(diào)用自身以完成某個(gè)給定的任務(wù)。但是,遞歸可能會(huì)導(dǎo)致堆棧溢出。 如要從函數(shù)返回一個(gè)值,則將值賦給函數(shù)名即可。在過(guò)程的任意位置都可以出現(xiàn)任意個(gè)這樣的賦值。如果沒(méi)有給name賦值,則過(guò)程將返回一個(gè)默認(rèn)值:數(shù)值函數(shù)返回0,字符串函數(shù)返回零長(zhǎng)度字符串(" ")。如果在Function中沒(méi)有對(duì)象引用被指定給name(使用Set),則返回對(duì)象引用的函數(shù)將返回Nothing。 在Function過(guò)程中使用的變量分為兩類:一類是在過(guò)程內(nèi)顯式聲明的,另一類則不是。在過(guò)程內(nèi)顯式聲明的變量(使用Dim或等效方法)總是過(guò)程的局部變量。被使用但沒(méi)有在過(guò)程中顯式聲明的變量也是局部變量,除非在該過(guò)程外更高級(jí)別的位置顯式聲明它們。 過(guò)程可以使用沒(méi)有在過(guò)程內(nèi)顯式聲明的變量,但如果在Script級(jí)中任何定義的名稱與之相同,則會(huì)發(fā)生名稱沖突。如果過(guò)程中使用的未聲明的變量與另一個(gè)過(guò)程、常量或變量的名稱相同,則會(huì)認(rèn)為過(guò)程使用的是Script級(jí)的名稱。顯式聲明變量可以避免這類沖突??梢允褂肙ption Explicit語(yǔ)句來(lái)強(qiáng)制顯式聲明變量。 VBScript可能會(huì)重新排列數(shù)學(xué)表達(dá)式以提高內(nèi)部效率。當(dāng)Function過(guò)程修改數(shù)學(xué)表達(dá)式中變量的值時(shí),應(yīng)避免在同一表達(dá)式中使用該函數(shù)。 Function語(yǔ)句的語(yǔ)法: [Public | Private] Function name [(arglist)] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function
Function 語(yǔ)句的語(yǔ)法包含表3.4所示的各部分。 表3.4 Function 語(yǔ)句的語(yǔ)法組成 組成部分 說(shuō)明 Public 表示Function過(guò)程可被所有Script中的所有其他過(guò)程訪問(wèn)。 Private 表示Function過(guò)程只可被聲明它的Script中的其他過(guò)程訪問(wèn)。 Name Function的名稱,遵循標(biāo)準(zhǔn)的變量命名約定。 Arglist 代表調(diào)用時(shí)要傳遞給Function過(guò)程的參數(shù)的變量列表。用逗號(hào)隔開(kāi)多個(gè)變量。 Statements 在Function過(guò)程的主體中執(zhí)行的任意語(yǔ)句組。 Expression Function的返回值。
Sub selectOption_onChange Dim nBegin, nEnd, nResult nBegin = FilterNumber(frmFORM.txtBegin.value) nEnd = FilterNumber(frmFORM.txtEnd.value)
Dim i i = nBegin if (frmFORM.selectOption.value = "從起始值到終止值的連加") Then nResult = 0 For i = nBegin To nEnd nResult = nResult + i Next Elseif (frmFORM.selectOption.value = "從起始值到終止值的連乘") Then nResult = 1 For i = nBegin To nEnd nResult = nResult * i Next End If frmFORM.txtResult.value = nResult
Sub InitOptionSelect Dim d Set d = CreateObject("Scripting.Dictionary") d.Add "0", "從起始值到終止值的連加" d.Add "1", "從起始值到終止值的連乘"
Dim i Dim e For Each i in d Set e = Document.createElement("OPTION") e.Text = d.Item(i) e.Value = d.Item(i) frmFORM.selectOption.Options.Add e Next
End Sub
修改顏色值的代碼也寫在下拉列表的onChange事件的過(guò)程中。
Sub InitColorSelect Dim d Set d = CreateObject("Scripting.Dictionary") d.Add "0", "紅色" d.Add "1", "綠色" d.Add "2", "藍(lán)色" d.Add "3", "黃色" d.Add "4", "藍(lán)綠" d.Add "5", "紫色"
Dim i Dim e For Each i in d Set e = Document.createElement("OPTION") e.Text = d.Item(i) e.Value = d.Item(i) frmFORM.selectBkColor.Options.Add e frmFORM.selectBkColor.value = d.Item(i) Next
<HTML> <HEAD> <META name=VI60_defaultClientScript content=VBScript> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <TITLE>第四章節(jié)的一個(gè)例子:關(guān)于選擇語(yǔ)句和循環(huán)語(yǔ)句的使用</TITLE> </HEAD> <SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> <!-- Sub InitColorSelect Dim d Set d = CreateObject("Scripting.Dictionary") d.Add "0", "紅色" d.Add "1", "綠色" d.Add "2", "藍(lán)色" d.Add "3", "黃色" d.Add "4", "藍(lán)綠" d.Add "5", "紫色"
Dim i Dim e For Each i in d Set e = Document.createElement("OPTION") e.Text = d.Item(i) e.Value = d.Item(i) frmFORM.selectBkColor.Options.Add e frmFORM.selectBkColor.value = d.Item(i) Next
End Sub
Sub InitOptionSelect Dim d Set d = CreateObject("Scripting.Dictionary") d.Add "0", "從起始值到終止值的連加" d.Add "1", "從起始值到終止值的連乘"
Dim i Dim e For Each i in d Set e = Document.createElement("OPTION") e.Text = d.Item(i) e.Value = d.Item(i) frmFORM.selectOption.Options.Add e Next
End Sub
Function FilterNumber(NumValue) If ( IsNumeric(NumValue) ) Then FilterNumber = NumValue else FilterNumber = 0 End If
End Function
Sub selectBkColor_onchange Dim ColorValue Select Case frmFORM.selectBkColor.Value Case "紅色" ColorValue = RGB(255, 0, 0) Case "綠色" ColorValue = RGB(0, 255, 0) Case "藍(lán)色" ColorValue = RGB(0, 0, 255) Case "黃色" ColorValue = RGB(255, 255, 0) Case "藍(lán)綠" ColorValue = RGB(0, 255, 255) Case "紫色" ColorValue = RGB(255, 0, 255) End Select
document.bgColor = ColorValue
End Sub
Sub selectOption_onChange Dim nBegin, nEnd, nResult nBegin = FilterNumber(frmFORM.txtBegin.value) nEnd = FilterNumber(frmFORM.txtEnd.value)
Dim i i = nBegin if (frmFORM.selectOption.value = "從起始值到終止值的連加") Then nResult = 0 For i = nBegin To nEnd nResult = nResult + i Next Elseif (frmFORM.selectOption.value = "從起始值到終止值的連乘") Then nResult = 1 For i = nBegin To nEnd nResult = nResult * i Next End If frmFORM.txtResult.value = nResult
第4章 VBScript的函數(shù) 我們已經(jīng)對(duì)VBScript的基本知識(shí)有所了解,本章我們將進(jìn)一步學(xué)習(xí)VBScript的各類函數(shù)。由于學(xué)習(xí)抽象的函數(shù)知識(shí)近似于學(xué)習(xí)理論知識(shí),會(huì)讓人感到十分的枯燥和乏味,所以在這一章中,我們先從總體上對(duì)VBScript的函數(shù)作一綜合介紹,然后再通過(guò)一些典型的例子,來(lái)詳細(xì)講解較常用到的VBScript函數(shù)。 4.1 VBScript函數(shù)綜述 在VBScript中,函數(shù)包含在Function和End Function之間,函數(shù)和過(guò)程有許多相同之處,同樣可以獲取一定的參數(shù),執(zhí)行一系列的語(yǔ)句,并完成一定的操作,但和過(guò)程不同之處在于,函數(shù)會(huì)有一個(gè)返回值,其語(yǔ)法如下所示: Public|Private Function name [(argulist)] statements name = expression End Function 和過(guò)程一樣,使用Private和Public可以表示函數(shù)是是公有的還是私有的,缺省情況下,函數(shù)默認(rèn)是公有的。name是函數(shù)的名稱,其命名需要遵循VBScript關(guān)于變量命名的規(guī)定。argulist是函數(shù)的參數(shù)列表,多個(gè)參數(shù)之間通過(guò)逗號(hào)進(jìn)行分隔,參數(shù)傳遞有兩種傳遞方式:ByVal進(jìn)行值傳遞、ByRef進(jìn)行地址傳遞。statements是函數(shù)內(nèi)執(zhí)行的腳本。 name=expression語(yǔ)句則將expression的結(jié)果返回給調(diào)用該函數(shù)的語(yǔ)句,其中返回的結(jié)果數(shù)據(jù)類型是Variant類型。 如果需要在函數(shù)執(zhí)行的過(guò)程中,滿足某種條件后直接退出函數(shù)的處理邏輯,返回主程序,應(yīng)該使用Exit Function語(yǔ)句。 例如,我們可以編寫函數(shù)完成將溫度的華氏度換算為攝氏度,如下所示:
<!-- Function CDegree(ByVal fDegree) CDegree = (fDegree – 32) * 5 /9 End Function -->