private聲明的變量有效范圍 vba定義變量有DIM PRIVATE PUBLIC我想問一下他們的區(qū)別?
vba定義變量有DIM PRIVATE PUBLIC我想問一下他們的區(qū)別?Dim和Private關(guān)鍵字在定義模塊級(jí)私有變量時(shí)是一樣的。除此之外,在定義變量時(shí),Public和Private關(guān)鍵字只能用于
vba定義變量有DIM PRIVATE PUBLIC我想問一下他們的區(qū)別?
Dim和Private關(guān)鍵字在定義模塊級(jí)私有變量時(shí)是一樣的。除此之外,在定義變量時(shí),Public和Private關(guān)鍵字只能用于定義模塊級(jí)變量,而Static只能用于過程內(nèi)部定義靜態(tài)變量。所以,我們可以將變量的定義方式總結(jié)如下:
1)Dim可以用于過程內(nèi)部和外部,但不管用于過程內(nèi)外,使用Dim語句定義的變量均為私有,無法在模塊外使用;
2)Public和Private只能在過程外使用,用來定義模塊級(jí)變量,區(qū)別是Public定義的模塊級(jí)變量對(duì)外界可見,可以被本模塊和其他模塊使用。而Private定義的模塊級(jí)變量,只能用于本模塊,不能被其他模塊調(diào)用。
3)Static只能在過程內(nèi)部定義靜態(tài)變量,由Static定義的變量只能用于本過程,不能被本模塊的其他Sub或Function調(diào)用,更不能被其他模塊調(diào)用。
所以,綜合以上三點(diǎn),我們?cè)诼暶髯兞康臅r(shí)候,共同遵守以下規(guī)則即可——“在過程外使用Public和Private定義模塊級(jí)變量,在過程內(nèi)使用Dim和Static定義過程級(jí)變量。”這樣既能迅速掌握每個(gè)關(guān)鍵字的使用方法,也不容易混淆。
"以上是個(gè)人對(duì)Dim,Private,Public,Static關(guān)鍵字使用的個(gè)人總結(jié)??!"
private修飾的成員變量?
private,public,pretect,internal,! 四個(gè)訪問修飾符號(hào),分別作用域是,private:如果是用private修飾的類成員,那么只有在當(dāng)前類中才可以使用,!如果修飾類,那么就是當(dāng)前結(jié)果集可用,public:完全公開,!pretect:只有自己和自己的子類才可以用,.!internal:當(dāng)前結(jié)果集可用,! 其他還有就是關(guān)于變量,分為成員變量,局部變量,循環(huán)變量,! 成員變量在當(dāng)前類中都可以使用,局部變量只有在方法體中使用,循環(huán)變量只有在循環(huán)體中使用,
vba public與private有什么區(qū)別?
一、Public和Private一般用于定義全局變量,也可以在類中使用。
區(qū)別在于:[Public]前者定義的是公共變量,如果在一個(gè)模塊當(dāng)中使用,那么整個(gè)應(yīng)用程序都能使用它所定義的變量,如果在類中使用,那么它就是一個(gè)共有屬性。
[Private]而后者定義的是私有變量,如果在一個(gè)模塊中使用,那么只有這個(gè)模塊才能訪問到它所定義的變量,如果在類中使用,那么它就是一個(gè)私有屬性。
二、Dim和Static一般在過程(Sub或者Function)內(nèi)部使用,它們所定義的變量都只能在過程內(nèi)部被訪問。
區(qū)別在于:[Dim]前者定義的是動(dòng)態(tài)變量,過程一旦結(jié)束,該變量所占有的內(nèi)存就會(huì)被系統(tǒng)回收,而變量所儲(chǔ)存的數(shù)據(jù)就會(huì)被破壞。
[Static]后者定義的是靜態(tài)變量,這意味著在過程結(jié)束后這個(gè)變量所占有的內(nèi)存不會(huì)被回收,數(shù)據(jù)當(dāng)然也不會(huì)被破壞了,這樣當(dāng)你下次再調(diào)用該過程的時(shí)候,數(shù)據(jù)就依然存在。
相比之下,Public和Static都有保留數(shù)據(jù)不被破壞的作用,但是,前者適合于那些所有過程都可能訪問到的變量,而后者則把變量的作用范圍縮在最?。ㄖ辉谠撨^程內(nèi)能被訪問)。