掃碼下載APP
及時接收最新考試資訊及
備考信息
Private:聲明私有類型的數(shù)據(jù);
Static:聲明靜態(tài)類型的數(shù)據(jù);
Dim:聲明數(shù)據(jù)類型;如:Dim myCell As Range
reDim:定義未顯式聲明的數(shù)組的維數(shù)和元素;
Const:聲明常量數(shù)據(jù);如:Const limit As Integer = 33
As:一般用于聲明數(shù)據(jù)類型中的“As Type”子句;
Type:聲明用戶自定義數(shù)據(jù)類型。
首先我們先了解下VBA代碼的語法結(jié)構(gòu)。每一種編程語言都有各自的語法組織結(jié)構(gòu),什么內(nèi)容就應該放在什么地方。VBA代碼一般都按照事件、過程、函數(shù)、模塊、類模塊等來組織,不管是系統(tǒng)內(nèi)部定義好的還是開發(fā)人員自定義的過程、函數(shù)或模塊,使用前都必須聲明。聲明也就是告訴VBA代碼的編譯器,我下面的程序中會用到這些變量、過程、函數(shù)和模塊等。聲明分兩種,一種是顯式聲明,也就是將聲明部分代碼明確的寫出來。另一種是非顯式聲明。當您的模塊中含有這條語句“Option Explicit”,那么系統(tǒng)就強制規(guī)定您必須顯式聲明該模塊中的所有變量,否則將編譯出錯。如果沒有出現(xiàn)上述語句,那么您可以在使用變量前不顯式聲明該變量,系統(tǒng)編譯時將默認該變量類型為Variant。
聲明語句可以命名和定義過程、變量、數(shù)組以及常數(shù)。當聲明一個過程、變量或常數(shù)時,也同時定義了它的作用范圍,而此范圍是取決于聲明位置以及用什么關(guān)鍵字來聲明它。先說聲明的位置,如果你在某個工作表的某個過程中聲明了一個變量或函數(shù),那么這個變量或函數(shù)的作用范圍就局限于這個過程;如果你在一個工作表的(通用)部分聲明了一個變量或函數(shù),那么這個變量或函數(shù)的作用范圍就局限于該工作表代碼模塊中。這就表明聲明的位置可以決定變量或函數(shù)的作用范圍。除了聲明位置外,采用哪個關(guān)鍵字也可以決定被聲明對象的作用范圍。比如,如果你在一個自定義模塊中,采用PUBLIC這個關(guān)鍵字來聲明一個變量,那么這個變量在所有應用程序的所有沒有使用 Option Private Module 的模塊的任何過程中都是可用的(若該模塊使用了 Option Private Module,則該變量只是在其所屬工程中是公用的)。而采用PRIVATE聲明的變量,其作用范圍就只有該模塊內(nèi)部,稱為私有變量。上述兩個關(guān)鍵字只能在模塊級別代碼中使用。(所謂模塊級別就是只在過程外部的代碼,即某個工作表的部分中寫的代碼,區(qū)別于過程級別的代碼,即過程中書寫的代碼)除此以外,還有一個DIM關(guān)鍵字,用這個關(guān)鍵字可以在模塊級別中聲明變量,也可以在過程級別中聲明的變量;前者聲明的變量對該模塊中的所有過程都是可用的,而后者則只在過程內(nèi)是可用的。STATIC關(guān)鍵字是用來聲明靜態(tài)類型變量的,這是什么意思呢?舉個例子你就清楚了,一般聲明的過程級別變量,在程序代碼運行完該過程之后,該變量的值就自動清空了,該變量也由于所在過程的運行完畢而結(jié)束了其生存周期。這樣的過程級別的變量稱為動態(tài)變量。那么有另外一種變量,雖然也是在過程級別中被聲明的,但在該過程運行結(jié)束以后,該變量的值仍然保持不變,直至該變量所在過程所在的模塊運行中止為止。這樣的變量就叫做靜態(tài)變量。靜態(tài)變量只能在過程級別中使用,用于聲明變量并分配存儲空間。在整個代碼運行期間都能保留使用 Static 語句聲明的變量的值,并且其生命周期與包含該過程定義的模塊相同。從作用范圍來講,這類變量由于在過程級別的代碼中被聲明,因此其作用范圍只是局限于其所在的過程內(nèi)部。如下圖所示:
正確理解聲明類關(guān)鍵字的用法,對把握變量、過程、函數(shù)等對象的作用范圍和生命周期有著非??傄淖饔?。
Copyright © 2000 - 8riaszlp.cn All Rights Reserved. 北京正保會計科技有限公司 版權(quán)所有
京B2-20200959 京ICP備20012371號-7 出版物經(jīng)營許可證 京公網(wǎng)安備 11010802044457號