VBA 觸 類 旁通 類模組

2022-05-17 10:39:12 字數 4443 閱讀 2490

公有與私有

private sub test() '

privete私有的,這有在這個模組下可以被呼叫,相反為 public公有的

msgbox "

aaa"

end sub

---------------------sub test1()

call test

end sub

還有乙個小知識點

dim i as integer  『將i 定義在外面,那麼所有的過程及sub都能對i進行呼叫

----------------  '在這種情況下,只能在同乙個模組下可以任意呼叫sub test()    

i = 1

end sub

----------------sub test1()    『跨過程呼叫

msgbox i

end sub

在這種情況下可以跨模組進行呼叫,這個謹慎使用,占用記憶體,且容易出現錯誤

模組1

public i as integer

--------------------sub test()

i = 1

end sub

-------------------sub test1()

msgbox i

end sub

-------------------模組2

sub test1()

msgbox i

end sub

如果非要跨模組取值的話,可以使用這種方法

模組1

dim i as integer

-----------------sub test()

i = 1

end sub

-----------------sub test1()

msgbox i

end sub

-----------------function qbl()

'定義乙個函式來取值,具有通用性

qbl =i

end function

------------------模組2

sub test2()

msgbox i

end sub

可以作為小的儲存空間

dim str as string   '

定義在外面那麼可以作為乙個小儲存空間

---------------------sub test()

str = inputbox("

請輸入考生名")

end sub

---------------------sub test1()

'在執行完test後,資料儲存在str,在最後考生結束考試,可以

msgbox str 『點選test1輸出考生名

end sub

類模組這裡主要是講理論,去理解什麼是類模組,它的作用是自己可以建立個物件,以及它的屬性等

例如之前我們學習過的,建立表

sub test()

dim sht, sht1 as worksheet

for each sht in sheets

if sht.name = "一月"

then

k = k + 1

end if

next

if k = 0

then

set sht1 =sheets.add

sht1.name = "一月"

end if

end sub

優化成帶引數的過程:減少**

sub test1()

call test("二月

")end sub

-------------------------------sub test(str as string)

dim sht, sht1 as worksheet

for each sht in sheets

if sht.name =str then

k = k + 1

end if

next

if k = 0

then

set sht1 =sheets.add

sht1.name =str

end if

end sub

另再增加刪除表

sub test1()

'call sadd("二月")

call sdelete("二月"

)end sub

------------------------------sub sadd(str as string)

dim sht, sht1 as worksheet

for each sht in sheets

if sht.name =str then

k = k + 1

end if

next

if k = 0

then

set sht1 =sheets.add

sht1.name =str

end if

end sub

------------------------------sub sdelete(str as string)

dim sht as worksheet

for each sht in sheets

if sht.name =str then

sht.delete

end if

next

end sub

以此為切入點講解什麼是類模組:在這裡面定義的都是方法

類模組

在模組中再使用   :

sub test()   '

sub是個過程,而方法也是個過程,因此可以通過過程來為類模組定義方法

dim aaa as new supersheets

'aaa.sadd "3月"

aaa.add

end sub

屬性:分為兩種唯讀屬性,寫入屬性

sub test()

range("a1

") = sheets.count '

唯讀屬性,只能讀取

sheet1.name = 999

'可以進行賦值的屬性,寫入屬性

end sub

在模組裡有sub過程和function函式計算過程,對應的在類模組,sub對應方法,function對應屬性

sub test()

range("a1

") =scount()

end sub

-------------------------function scount() ;不用引數,直接計算出結果

scount =sheets.count

end function

但是在類模組中宣告乙個屬性用的是property 宣告它有三個值 get:唯讀的;let:寫屬性入的屬性,set:子物件,它就相當於模組中的function函式

do while迴圈

第三次自考總結(觸類旁通)

前言 這次自考一共兩門,資訊資源管理和作業系統兩門都過了,這次總結不詳細寫學習方法的事兒了,之前的部落格比較詳細,主要寫下自考完後對專案的影響,也是將理論應用實踐的過程,可能是雞湯慎用。這本書主要講的是企業如何實現資訊化,資訊的概念很抽象,不去想,美國的一位學者描述計算機範圍的資訊,資訊便是資料。先...

VBA類模組初步

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

VBA標準模組與類模組

大家通過之前的介紹,已知道怎麼將乙個空模組插入vba的工程中。從插入模組中可以看到,模組有有兩種 標準模組與類模組。類模組是含有類定義的特殊模組,包括其屬性和方法的定義。在後面會有介紹與說明。隨著工程越來越委員複雜,我們就有可能會有多個模組。使用多模組的好處就是,它允許將相關的過程聚合在一起,使 的...