vba開發接觸了兩個月,自認為拜託了新手期,遇到很多問題,也有一些心得。根據開發中遇到的問題開始陸續總結。
開發過程中,遇到程式執行過程中的儲存大量臨時資料問題,這些資料只是用於下一步的計算,不需要呈現在最後的結果中。為了後面步驟使用和管理方便,建立了table類模組。
類模組:ctable
1類模組名:ctable,下面這些public就是類的屬性了,這個類看起來跟自定義型別沒什麼區別,沒錯,這已經是乙個類模組了。option
explicit23
'***********************************=4'
名稱: ctable5'
功能: 描述乙個excel**區域6'
***********************************=78
public strname as
string'表名
9public straddress as
string'位址
10public rngstart as range '
開始單元格
11public rngend as range '
結束單元格
12public icolumns as
string
'列數
普通模組:data
option執行結果:explicit
'*************************===
'名稱: createtable
'功能: 建立表
'引數: strtablename: 表名
'astrcolumnnames:列名陣列
'返回: 表
'*************************===
function createtable(byref strtablename as
string, astrcolumnnames as variant) as
ctable
dim clsstutab as
new ctable '
宣告並建立乙個物件
clsstutab.straddress = "
sheet2!$a$1
"set clsstutab.rngstart =range(clsstutab.straddress)
clsstutab.strname =strtablename
dimi, j
with
clsstutab.rngstart
.offset(
0, 0).value =clsstutab.strname
j = 0
for i = lbound(astrcolumnnames) to
ubound
(astrcolumnnames)
.offset(
1, j).value =astrcolumnnames(i)
j = j + 1
next
clsstutab.icolumns =j
set clsstutab.rngend = .offset(1, j - 1
)
endwith
clsstutab.rngstart.offset(
0, 1).value =clsstutab.rngend.address
set createtable =clsstutab
end function
sub建立學生表()
dim clsstudenttable as ctable '
宣告乙個物件
dim astrcolumnnames as
variant
astrcolumnnames = array("
id", "
name
", "
gender
", "
stuid
", "
class")
set clsstudenttable = createtable("
學生表"
, astrcolumnnames)
end sub
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的工程中。從插入模組中可以看到,模組有有兩種 標準模組與類模組。類模組是含有類定義的特殊模組,包括其屬性和方法的定義。在後面會有介紹與說明。隨著工程越來越委員複雜,我們就有可能會有多個模組。使用多模組的好處就是,它允許將相關的過程聚合在一起,使 的...
VBA 觸 類 旁通 類模組
公有與私有 private sub test privete私有的,這有在這個模組下可以被呼叫,相反為 public公有的 msgbox aaa end sub sub test1 call test end sub 還有乙個小知識點 dim i as integer 將i 定義在外面,那麼所有的過...