?

編程實現電子表格自動匯總

2014-10-21 19:57王峰
計算機光盤軟件與應用 2014年24期

摘 要:隨著科技的發展,信息技術自動化,應用EXCEL制作一個實用的工資管理系統是非常有必要的,可以利用EXCEL中的VBA來編程實現對大量數據的輸入和匯總。這篇論文主要是對電子表格的工作表復制、字段的排序以及對一些數據的匯總編寫一些程序。

關鍵詞:EXCEL;VBA;分類匯總

中圖分類號:TP311.52

VBA是一種自動化語言,它可以使常用的程序自動化,可以創建自定義的解決方案,是非常流行的應用程序開發語言VASUAL BASIC的子集。實際上VBA是“寄生于”VB應用程序的版本,它可以稱作EXCEL的“遙控器”,使用VBA可以實現的功能包括:(1)使重復的任務自動化;(2)自定義EXCEL工具欄,菜單和界面;(3)簡化模板的使用;(4)自定義EXCEL,使其成為開發平臺;(5)創建報表;(6)對數據進行復雜的操作和分析。

在此用EXCEL作為開發平臺實現VBA的用應程序。

1 完成此向任務的流程圖

2 作數據工作表及匯總工作

2.1 啟動Microsoft Office Excel2003,將sheet1重命名“總表”,將sheet2重命名為“部門匯總”,sheet3重命名為“工資表”,然后將工作簿保存為“工資管理.XLS”。

2.2 打開工作簿,選擇工資表,在A1至D1單元格中依次輸入職工編號、基本工資、工齡、合計工資。然后選擇總表,將職工編號、基本工資、工齡等項目數據復制到工資表中,利用VBA編程,打開VBA界面。

(1)選擇“工具—宏—visual basic編輯器”命令,出現Microsoft visual basic編輯界面。

(2)選擇“插入—模塊”命令,出現模塊1代碼窗口,如圖2所示,然后在代碼窗口中輸入如下代碼:

2.3 計算工資表的合計工資,選中D2,在編輯欄中輸入“=2*C2+B2”,按回車鍵。即可完成D2單元格的數據,再用填充的方法完成其他數據的填充。

2.4 再完成總表中的合計工資。利用列查找函數VLOOKUP()完成。選擇總表,在I2單元格中輸入公式“=VLOOKUP(A2,工資表!$A$2:$D$31,7,0)”

2.5 對總表按部門進行匯總,完成這一部之前可先用VBA編輯一個自動“部門匯總”工具欄,以后單擊此按扭就可自動完成匯總工作。

(1)選擇“工具—宏—visual basic編輯器”命令,出現Microsoft visual basic 編輯界面(即VBA編輯器界面)。

(2)選擇“插入—模塊”命令,然后在代碼窗口中輸入如下代碼:

private sub auto_open()

‘自動創建部門匯總工具欄

menubars(xlworksheet).reset

‘關閉其他EXCEL自定義菜單

set my‘單擊對象時運行collect宏commandbar=commandbars(“standard”)

‘創建commandbars集合對象

set mybutton=mycommandbar.control.add(type:=msocontrolbutton)

‘用ADD方法可在集合中添加一個新的工具欄

mybutton.caption=“部門匯總”

mybutton.enabled=true

‘打開對象的enabled屬性

mybutton.onaction=“collect”

end sub

2.6 完成了自動“部門匯總”工具欄,現在我們可將總表數據全部復制到部門匯總表,用EXCEL 中的subtotal()分類匯總函數對部門進行匯總,但在做匯總之前,數據一定是按某種順序排列的,我們可用EXCEL中的排序函數sort()來對部門升序排序。

(1)選擇“工具—宏—visual basic編輯器”命令,出現Microsoft visual basic編輯界面。

(2)選擇“插入—模塊”命令,然后在代碼窗口中輸入如下代碼:

sub copysheet() ‘復制工作表

sheets(“部門匯總”).select

cells.select ‘選擇整個工作表

range(“E5”).active

selection.delete shift:=xlup

sheets(“總表”).select‘執行刪除命令

range(“A2:A31”).select

range(“A15”).active

select.copy

sheets(“部門匯總”).select

range(“A1”).select

Activesheet.paste

End sub

(3)再選擇“工具—宏—visual basic編輯器”命令,出現Microsoft visual basic 編輯界面。

(4)選擇“插入—模塊”命令,然后在代碼窗口中輸入如下代碼:

sub sort() ‘對部門進行排序

select.sort key1:= range(“B2”) , order1:=xlAsending , _

header:=xlguess , ordercustom:=1 , matchcase:=false , _

orientaction:=xl top to botton , sortmethod:=xl pinyin , _

dataoption:=xl sortnormal

end sub

(5)自動匯總的編程,再選擇“工具—宏—visual basic編輯器”命令,出現Microsoft visual basic 編輯界面。

(6)選擇“插入—模塊”命令,然后在代碼窗口中輸入如下代碼:

sub collect() ‘定義一個名為collect的宏

selection.subtotal groupby:=2, unction:=xl sum , totallist:=9 ,_

replace:=true , pagebreak:=false , summary belowdata:=true

end sub

2.7 輸入一組數據進行測試,保存并退出EXCEL 2003 。

2.8 重新打開“工資管理”工作簿,單擊“部門匯總”按扭,即可查看部門匯總結果,如圖3、圖4所示。

3 結束語

在EXCEL中利用VBA編程實現電子表格的自動匯總,可進一步增強電子表格的功能。

參考文獻:

[1]劉小偉,陳德榮.EXCEL 高效辦公應用范例[M].北京:機械工業出版社,2006.

[2]晶辰工作室.Excel 2000中文版VBA開發實例指南[M].北京:電子工業出版社,2008.

作者簡介:王峰(1985-),男,安徽阜陽人,助理工程師,本科,研究方向:計算機科學與技術。

作者單位:潁東區信息化工作辦公室,安徽阜陽 236000

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合