這是一個關於問題scope。
如果只想變量持續的功能壽命,使用Dim
(簡稱尺寸)函數或子內聲明的變量:
Function AddSomeNumbers() As Integer
Dim intA As Integer
Dim intB As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are no longer available since the function ended
一個全球變量(正如SLaks指出的)在使用Public
關鍵字的函數之外聲明。這個變量在運行應用程序的生命週期中可用。就Excel而言,這意味着只要特定的Excel工作簿處於打開狀態,這些變量就可以使用。
Public intA As Integer
Private intB As Integer
Function AddSomeNumbers() As Integer
intA = 2
intB = 3
AddSomeNumbers = intA + intB
End Function
'intA and intB are still both available. However, because intA is public, '
'it can also be referenced from code in other modules. Because intB is private,'
'it will be hidden from other modules.
您也可以是通過與Private
關鍵字聲明它們的特定模塊(或類)內只訪問的變量。
如果您正在構建一個大型應用程序,並且覺得需要使用全局變量,那麼我會建議爲您的全局變量創建一個單獨的模塊。這應該有助於您在一個地方跟蹤它們。
+1 7年後仍然有用。但是,在對象變量和數據變量方面還有一些額外的細微差別嗎?我遇到了一個與引發新問題的對象變量範圍相關的問題。非常感謝,如果你有時間看看。 https://stackoverflow.com/q/46058096/5457466 – Egalth 2017-09-05 19:22:55