2013-01-01 66 views
1
變量

考慮下面的代碼:範圍在VBScript

Option Explicit 

Dim Count : Count = 4 


'Case-I 
Sub Display1() 

MsgBox(Count) 

End Sub 

'Case-II 

Sub Display2(Count) 

MsgBox(Count) 

End Sub 

混亂

  • 這裏應變量Count將是兩個 訪問method或只對Display2方法?
  • 如果變量count不符合Display1方法訪問,然後 有沒有什麼辦法讓它任何子或功能 內可用,而不將它傳遞給SubFunction
  • 現在,如果我從更新Count變量Display2 sub將 該值可用於其他functionsub前提是 VBScript有global變量聲明。
+0

可能重複http://stackoverflow.com/questions/3835195/variable -scope-in​​-vbscript-functions) – David

+0

你有沒有運行上面的代碼?什麼是「功能」?這可能是你的下一個問題.. – bonCodigo

+1

* VBScript *變量的參考從這裏開始:http://msdn.microsoft.com/en-us/library/t7zd6etz%28v=vs.84%29.aspx –

回答

2

變量count在任何函數或子過程之外被聲明,因此它的範圍在這裏是全局的。全局變量可用於任何函數或子程序中,其值可在程序流程中的任何位置更改。

現在,如果您打電話到此過程並運行.vbs文件,則消息框在兩種情況下都將顯示4

Option Explicit 

Dim Count : Count = 4 
'Case-I 
Sub Display1() 
MsgBox(Count) 
End Sub 

'Case-II 
Sub Display2(Count) 
MsgBox(Count) 
End Sub 

Call Display1() 
Call Display2(Count) 

如果您在任何功能或子過程中改變count變量的值,其值將用於其他程序改變也因爲它的範圍是全球性的。

Explicit選項

Dim Count : Count = 4 
'Case-I 
Sub Display1() 
Count = 5    ''value changed here 
MsgBox(Count) 
End Sub 

'Case-II 
Sub Display2(Count) 
MsgBox(Count) 
End Sub 

Call Display1() 
Call Display2(Count) 

在上述情況下,兩個消息框將顯示5

[在VBScript函數變量範圍(的
+1

感謝您的努力! – CodeLover