制作Excel加载宏完成工资表自动生成工资条
摘 要:
摘 要:Microsoft Excel 提供了加载宏功能,本文通过“生成工资条”加载宏可以解决工作人员制作工资条的问题。只要用户将该加载宏载入到Excel中,就会作为Excel的一个菜单项命令来使用,具有较好的实用性和通用性。
关键词:
关键词:加载宏 VBA 工资表
工资管理是许多单位数据处理中的一个应用,很多OA软件都有工资管理模块,但单位中存在许多因素,花费大力人力物力财力去开发存在苦难,所以寻求一种简单、高效、低成本的开发方法是非常有意义的。
1 程序设计目标
设计一个把工资表自动生成工资条的程序,把它以“加载宏”的方式加载到Excel应用软件中,在Excel2003的“工具”菜单栏中增加了“生成工资条”菜单项。打开一个名为“工资表”的工作表(见图1),选择“工具”菜单栏中的“生成工资条”菜单项,将自动把工资表生成工资条(见图2)。
图1 工资表和加载宏后的“工具”菜单 图2 生成工资条
2 编程关键技术及程序实现
VBA是建立在Office软件上的应用开发工具,其关键技术主要包括语句、对象、方法、属性、事件等。
2.1 根据上述介绍方法,在工作簿下创建代码模块,并在其中建立过程
Sub createpaylist()
Dim i As Integer
Dim endrow As Integer
For Each Worksheet In Worksheets '检查有无同名工作表
If Worksheet.Name = "工资条" Then
abc = MsgBox("现工作簿中有一张名为“工资条”工作表。要继续吗?", vbYesNo + vbQuestion, Title:="工资条")
If abc = 6 Then
Worksheets("工资条").Delete
End If
If abc = 7 Then
cancel = True
MsgBox "您取消了本次操作!", vbQuestion, "工资条"
Exit Sub
End If
End If
Next
Worksheets.Add '生成新工作表
ActiveSheet.Name = "工资条"
'计算"工资表"中数据的行数
endrow = Worksheets("工资表").Range("A65536").End(xlUp).Row
2.2 创建菜单模块,建立过程
Sub CreateMenu()
Dim NewItem As CommandBarButton
Dim XLCommandBar As String
Dim XLMenu As String
Dim XLMenuItem As String
Dim NewMenuItem As String
XLCommandBar = "Worksheet Menu Bar"
XLMenu=Application.CommandBars(XLCommandBar).FindControl(msoControlPopup, 30007).Caption
XLMenuItem = ""
NewMenuItem = APPNAME & "..."
Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls(NewMenuItem).Delete
Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(NewMenuItem).Delete
If XLMenuItem = "" Then
Set NewItem=Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls.Add
Else
SetNewItem=Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls.Add
End If
With NewItem
.Caption = NewMenuItem
.OnAction = "CreatePaylist"
.FaceId = 0
.BeginGroup = True
End With
Exit Sub
End Sub
2.3 删除菜单模块,建立过程
Sub DeleteMenu()
Dim XLCommandBar As String
Dim XLMenu As String
Dim XLMenuItem As String
Dim NewMenuItem As String
XLCommandBar = "Worksheet Menu Bar"
XLMenuItem = ""
NewMenuItem = APPNAME & "..."
XLMenu = Application.CommandBars(XLCommandBar).FindControl(msoControlPopup, 30007).Caption
Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(XLMenuItem).Controls(NewMenuItem).Delete
Application.CommandBars(XLCommandBar).Controls(XLMenu).Controls(NewMenuItem).Delete
End Sub
2.4 在完成生成工资条、创建菜单项和删除菜单项命令的代码后,在Workbook的 Addininstall和AddinUninstall事件,,代码如下:
Private Sub Workbook_AddinInstall()
CreateMenu '调用CreateMenu程序
End Sub
Private Sub Workbook_AddinUninstall()
DeleteMenu
End Sub
2.5 返回到Excel编辑状态,保存文件为“工资条工具.xla”(扩展名为*.xla)
打开Excel,执行菜单栏“工具”中的“加载宏”命令,选择“工资条工具.xla”加载文件,“生成工资条”加载成功
3 结语
本文通过Excel加载宏实用程序的方法,来扩充Excel系统本身的功能,这对于使用Excel的相关人员提供一种思路,发挥自主创造力来扩充Microsoft Excel功能,提高工作效率。
参考文献:
[1]李启刚.浅析Excel制作工资条的方法——两行项目工资条的制作[J].齐鲁珠坛,2010(5).
本文编号:14521
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/14521.html