VBA標準模組與類模組

2021-09-06 14:50:41 字數 1370 閱讀 5774

大家通過之前的介紹,已知道怎麼將乙個空模組插入vba的工程中。從插入模組中可以看到,模組有有兩種——標準模組與類模組。類模組是含有類定義的特殊模組,包括其屬性和方法的定義。在後面會有介紹與說明。

隨著工程越來越委員複雜,我們就有可能會有多個模組。使用多模組的好處就是,它允許將相關的過程聚合在一起,使**的可維護性與可重用性大大提高,更使我們能夠方便地管理**。通過不同的模組,我們還可以為不同模組定製不同的行為,定製模組行為的方法有4種:

1、option explicit。當使用option explicit時,必須在模組中的所有過程宣告每乙個變數,否則會出現語法錯誤並不能被編譯。這樣做的好處是,它能消除程式中因為錯拼變數名而導致程式錯誤,所以見意使用此選項。自動設定的方法:在vba編輯器工具選單中選項裡的編輯器選卡中的要求宣告變數選項選上即可。這個每次插入新模組時會自動插入此宣告。

2、option private module。當使用此設定時,模組中的**將標記為私有,這樣在巨集對話方塊中就不能看到這些**,也就是在excel主介面的工具/巨集/巨集的對話方塊中不會顯示私有的子程式名稱,這也防止了模組的內容被其它工程引用,不過在同一工程中的其它模組仍然是可用的。

3、option compare 。用於宣告字串比較時所用的預設比較方法。如果模組中沒有 option compare 語句,則預設的文字比較方法是 binary。

option compare binary 是根據字元的內部二進位制表示而匯出的一種排序順序來進行字串比較。在 microsoft windows 中,排序順序由**頁確定。典型的二進位制排序順序如下例所示:

a < b < e < z < a < b < e < z < _ < _ < _ < _ < _ < ?

option compare text 根據由系統區域確定的一種不區分大小寫的文字排序級別來進行字串比較。當使用option compare text 對相同字元排序時,會產生下述文字排序級別:

(a=a) < ( _=_) < (b=b) < (e=e) < (_=_) < (z=z) < (_=_) 

option compare database 只能在 microsoft access 中使用。當需要字串比較時,將根據資料庫的區域id 確定的排序級別進行比較。

4、option base 。用來宣告陣列下標的預設下界。

注意 dim、private、public、redim 以及 static 語句中的 to 子句提供了一種更靈活的方式來控制陣列的下標。不過,如果沒有使用 to 子句顯式地指定下界,則可以使用 option base 將預設下界設為 1。使用 array 函式或 paramarray 關鍵字建立的陣列的下界為 0;option base 對 array 或 paramarray 不起作用。

option base 語句只影響位於包含該語句的模組中的陣列下界。

VBA類模組初步

property let address s as string paddress s end property property let salary d as double psalary d end property property let語句用於給屬性賦值,即將值引入類。在上例中,簡單地將...

VBA 觸 類 旁通 類模組

公有與私有 private sub test privete私有的,這有在這個模組下可以被呼叫,相反為 public公有的 msgbox aaa end sub sub test1 call test end sub 還有乙個小知識點 dim i as integer 將i 定義在外面,那麼所有的過...

VBA類模組 建立Table類(1)

vba開發接觸了兩個月,自認為拜託了新手期,遇到很多問題,也有一些心得。根據開發中遇到的問題開始陸續總結。開發過程中,遇到程式執行過程中的儲存大量臨時資料問題,這些資料只是用於下一步的計算,不需要呈現在最後的結果中。為了後面步驟使用和管理方便,建立了table類模組。類模組 ctable 1 opt...