当前位置:主页 > 科技论文 > 计算机论文 >

制作Excel加载宏完成工资表自动生成工资条

发布时间:2015-02-13 09:42

摘 要:

摘 要:Microsoft Excel 提供了加载宏功能,本文通过“生成工资条”加载宏可以解决工作人员制作工资条的问题。只要用户将该加载宏载入到Excel中,就会作为Excel的一个菜单项命令来使用,具有较好的实用性和通用性。

关键词:

关键词:加载宏 VBA 工资表

  工资管理是许多单位数据处理中的一个应用,很多OA软件都有工资管理模块,但单位中存在许多因素,花费大力人力物力财力去开发存在苦难,所以寻求一种简单、高效、低成本的开发方法是非常有意义的。

  

1 程序设计目标

  设计一个把工资表自动生成工资条的程序,把它以“加载宏”的方式加载到Excel应用软件中,在Excel2003的“工具”菜单栏中增加了“生成工资条”菜单项。打开一个名为“工资表”的工作表(见图1),选择“工具”菜单栏中的“生成工资条”菜单项,将自动把工资表生成工资条(见图2)。

                                   

制作Excel加载宏完成工资表自动生成工资条

        

制作Excel加载宏完成工资表自动生成工资条

                                              图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


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户01acb***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com