VBA 例項(費用表資料彙總)

2021-10-13 12:50:30 字數 2955 閱讀 4574

自己從進入職場後首次接觸的語言是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....