自己從進入職場後首次接觸的語言是vba,通過一段時間的學習,感覺自己學到了不少東西,也對vba相關知識有了一定的了解。本次文章是講解通過具體**來對乙個例項進行實現,以此來對自己的最近所學進行乙個提公升與鞏固。
本次例項中總共包含6個工作表,通過對6張表中的資料進行提取,再進行運算,將其彙總成一張新的**。這就是本次例項所要實現的功能。
六張表分別是:財務費用彙總(入賬+未入賬)、資料來源(入賬)、資料來源(未入賬)、試算表-是、試算表-非和試算表-上月累計額。其中財務費用彙總(入賬+未入賬)為最終要彙總形成的表。
邏輯思路:
1.資料來源(未入賬)處理:通過試算表-非的每一行d列與f列資料相減得到的差,對應填到資料來源(未入賬)表的金額列中,再通過每一行的金額與費用總和進行相除,得到對應的結構比率2.資料來源(入賬)處理:通過試算表-是的每一行d列與f列資料相減得到的差,對應填到資料來源(入賬)表的金額列中,再通過每一行的金額與費用總和進行相除,得到對應的結構比率
3.財務費用彙總(入賬+未入賬):3.1 處理本月發生額:將資料來源(入賬)和資料來源(未入賬)中金額進行相加,得到的和放到彙總表的本月發生額的金額中,再通過每一行的金額與費用總和進行相除,得到對應的結構比率
3.2 上月累計額:從試算表-上月累計額中複製得到,放到彙總表的e列和f列中
3.3 計算本年累計額:本月發生額的金額與上月累計額的金額相加,得到本年累計額的金額,再通過每一行的金額與費用總和進行相除,得到對應的結構比率
具體**實現:
sub 財務費用()
'1處理試算表-非
dim arr() as variant
dim length as integer
dim i as integer
worksheets("試算表-非").select
redim arr(1 to length) as variant
for i = 1 to length step 1
arr(i) = cells(i + 3, "d") - cells(i + 3, "e")
next
msgbox length
'將arr陣列中儲存的資料放置到資料來源(未入賬中)
'2.處理試算表-是
dim brr() as variant
dim lngth as integer
dim lth as integer
worksheets("試算表-是").select
redim brr(1 to lth) as variant
for i = 1 to lth step 1
brr(i) = cells(i + 3, "d") - cells(i + 3, "e")
next
'將brr陣列中儲存的資料放置到資料來源(入賬)中
worksheets("資料來源(入賬)").select
for i = 1 to lngth step 1
cells(i + 3, "d") = cells(i + 3, "c") / cells(37, "c")
next
'3.處理財務費用(入賬+未入賬)
'3.1 資料來源(入賬)、資料來源(未入賬)求和計算
dim crr() as variant
dim lgth as integer
worksheets("財務費用彙總(入賬+未入賬)").select
redim crr(1 to lgth) as variant
for i = 1 to lgth step 1
crr(i) = worksheets("資料來源(入賬)").cells(i + 3, "c") + worksheets("資料來源(未入賬)").cells(i + 3, "c")
next
for i = 1 to lgth step 1
cells(i + 3, "d") = cells(i + 3, "c") / cells(37, "c")
next
'3.2.獲取上月累計額
worksheets("試算表-上月累計額").range("g4:g" & lgth + 3).copy worksheets("財務費用彙總(入賬+未入賬)").range("e4:e" & lgth + 3)
worksheets("試算表-上月累計額").range("h4:h" & lgth + 3).copy worksheets("財務費用彙總(入賬+未入賬)").range("f4:f" & lgth + 3)
'3.3 計算本年累計發生額於結構比率
VBA建立資料透視表
sub 透視表 dim ptc as pivotcache dim pvt as pivottable dim rng as range set rng sheet1.range a1 d45 資料來源 set ptc activeworkbook.pivotcaches.create source...
VBA訪問access資料庫例項
最近,同事要用乙個excel檔案匯出每天郵件的資訊,郵件基本資訊都存在了access資料表中了,要實現這個功能有好幾種方式,例如寫乙個qty檔案,而我直接用了excel自帶的vba功能,寫了乙個巨集,根據輸入的日期直接呼叫,想要哪一天的就導哪一天的!不能白瞎了我這個程式猿的稱號啊,sub daoch...
VBA 資料透視表再了解
今天繼續講講vba資料透視表的內容。在昨天插入透視表的內容基礎上,增加一點學習內容。一 如果需要增加一列原來表上沒有的內容,比如說 利潤 假設利潤 原始資料表上面的收入 費用,怎麼操作呢?主要 和昨天的內容差不多,新增了2句話,pt.calculatedfields.add 利潤 收入 費用 pt....