ExecuteGlobal 語(yǔ)句執(zhí)行一個(gè)功多個(gè)在腳本全局名字空間中指定的語(yǔ)句。 ExecuteGlobal statement
statement 參數(shù)是一個(gè)包含一個(gè)或多個(gè)可執(zhí)行語(yǔ)句的字符串表達(dá)式 。在statement 參數(shù)中可以包含多條語(yǔ)句, 使用冒號(hào)將其分開(kāi)。 說(shuō)明在 VBScript 中, x =y 有兩種解釋方法。第一種方法是作為一條賦值語(yǔ)句, 將 y 的值賦給 x。第二種方法是作為一個(gè)表達(dá)式 ,用于測(cè)試 x 和 y 是否具有相同的值。如果它們相等,則結(jié)果為 True; 如果他們不相等,其結(jié)果為 False.ExecuteGlobal 語(yǔ)句總是使用第一種方法,而 Eval 方法總是使用第二種方法。 注意 在 Microsoft? Visual Basic Scripting Edition?中, 賦值與比較之間不存在混消,因?yàn)橘x值運(yùn)算符(=) 不同于比較運(yùn)算符。 在腳本的全局名字空間中,ExecuteGlobal 中的所有語(yǔ)句都有是可執(zhí)行的。因此,允許您將代碼添加到程序中,以便于任何 過(guò)程 能夠?qū)ζ溥M(jìn)行訪問(wèn)。例如,一個(gè) VBScript Class 語(yǔ)句在運(yùn)行時(shí)可以執(zhí)行。隨之函數(shù)創(chuàng)造此類(lèi)的一個(gè)新實(shí)例。 在運(yùn)行時(shí)添加過(guò)程和類(lèi)是非常有用的,但是也可能導(dǎo)致在運(yùn)行時(shí)覆蓋已有的全局 變量 和函數(shù)。因?yàn)檫@可能導(dǎo)致非常嚴(yán)重的程序問(wèn)題,因此,當(dāng)使用 ExecuteGlobal 語(yǔ)句時(shí)一定得非常謹(jǐn)慎。如果您無(wú)需訪問(wèn)過(guò)程之外的變量或函數(shù),最好使用Execute 語(yǔ)句,因?yàn)樗挥绊懼髡{(diào)函數(shù)的名字空間。 下面的例子解釋了 ExecuteGlobal 語(yǔ)句的用法。 Dim X ' 聲明 X 為全局變量。
X ="Global" ' 給全局變量 X 賦值。
Sub Proc1 ' 聲明過(guò)程。
Dim X ' 在局部變量中聲明 X 。
X ="Local" ' 給局部變量 X 賦值。
' 此處的可執(zhí)行語(yǔ)句
' 創(chuàng)建一個(gè)過(guò)程, 當(dāng)被調(diào)用時(shí), 打印 X 。
' 此處將打印全局變量 X 的值,因?yàn)?CODE> Proc2
' 繼承了全局變量中的一切。
ExecuteGlobal "Sub Proc2: 打印 X: End Sub" Print Eval("X") ' 打印局部 X 。
Proc2 ' 在全局作用區(qū)域中調(diào)用 Proc2 ' 將打印 "Global" 。
End Sub Proc2 ' 此行將導(dǎo)致錯(cuò)誤 ' 因?yàn)?CODE> Proc2 在 Proc1 之外是不可用的。
Proc1 ' 調(diào)用 Proc1 。
Execute "Sub Proc2: 打印 X: End Sub" Proc2 ' 此行調(diào)用成功,因?yàn)?CODE> Proc2 ' 在全局作用區(qū)域中是可用的。
下面的例子演示了 ExecuteGlobal 語(yǔ)句可以被重寫(xiě),因此您無(wú)需將下面的整個(gè)過(guò)程都包括在引用標(biāo)記之內(nèi)。 S ="Sub Proc2" & vbCrLf
S =S & " Print X" & vbCrLf
S =S & "End Sub"
ExecuteGlobal S
要求版本 1
返回首頁(yè) |