公有與私有
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()在模組裡有sub過程和function函式計算過程,對應的在類模組,sub對應方法,function對應屬性range("a1
") = sheets.count '
唯讀屬性,只能讀取
sheet1.name = 999
'可以進行賦值的屬性,寫入屬性
end sub
sub test()但是在類模組中宣告乙個屬性用的是property 宣告它有三個值 get:唯讀的;let:寫屬性入的屬性,set:子物件,它就相當於模組中的function函式range("a1
") =scount()
end sub
-------------------------function scount() ;不用引數,直接計算出結果
scount =sheets.count
end 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的工程中。從插入模組中可以看到,模組有有兩種 標準模組與類模組。類模組是含有類定義的特殊模組,包括其屬性和方法的定義。在後面會有介紹與說明。隨著工程越來越委員複雜,我們就有可能會有多個模組。使用多模組的好處就是,它允許將相關的過程聚合在一起,使 的...