利用VBA编写Excel中的工资条与工资查询窗口.doc

上传人:scccc 文档编号:14032277 上传时间:2022-01-31 格式:DOC 页数:7 大小:29.50KB
返回 下载 相关 举报
利用VBA编写Excel中的工资条与工资查询窗口.doc_第1页
第1页 / 共7页
利用VBA编写Excel中的工资条与工资查询窗口.doc_第2页
第2页 / 共7页
利用VBA编写Excel中的工资条与工资查询窗口.doc_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《利用VBA编写Excel中的工资条与工资查询窗口.doc》由会员分享,可在线阅读,更多相关《利用VBA编写Excel中的工资条与工资查询窗口.doc(7页珍藏版)》请在三一文库上搜索。

1、利用VBA编写Excel中的工资条与工资查询窗口1 引言VBA是附属在Office办公软件包中的一套程序语言,主要 用于自定义应用程序中的功能,以及加强应用程序之间的互动 1 。它继承了 Basic 的很多特性以及优点,加快了桌面软件设 计的发展。使用VBA语言不仅能够减轻办公人员的工作负担, 而 且还可以使 Execl 的大量重复性操作变得简单快捷。VBA具有如下两个特点1:2 背景高校教师工资管理表中一般包括教师编号、 姓名、基本工资、 职位岗位补贴、应扣税金、住房补贴和应扣保险等项目内容。我 们假定每位教师的应发工资=基本工资+职位岗位补贴+住房 补贴应扣税金应扣保险, 我们在 Excl

2、e 中分别建立了教师基 本资料表、工资表等。工资条是发放工资时交给员工的工资项目清单, 其数据来源 于工资表, 与工资表所不同的是: 每个工资条都应该包含标题以 及该员工所有工资数据的详细信息。 编制工资条就是在工资表中 为每一位员工的工资数据加上标题, 以使每一位员工拿到工资条 的时候都能够清晰地看到各项工资数据所代表的含义。 我们平常 的做法是在每个老师的记录所在行插入一行标题, 此种做法因为教工数量的增多时造成比较费时而且容易出错。因此, 我们可以在Excel的基础上,利用 VBA来实现自动编制工资条。为方便各位老师查询自己的具体工资情况, 建立“工资查询 表”工作表, 只要在查询窗口输

3、入员工编号, 就可以查询员工的 详细资料及各项工资数据。3 编程实现3.1 工资条的实现Sub 创建工资条 ()Dim i As Integer, row As Integer, col As IntegerSheets.Add after:=Sheets( 工资表 )ActiveSheet.Name = 工资条 在“工资表”的后面创建一个新的“工资条”工作表;Sheets( 工资表 ).Activaterow = Sheets( 工资表 ).A1.CurrentRegion.Rows.Countcol = Sheets( 工资表).A1.CurrentRegion.Columns.Count

4、Range(Cells(1, 1), Cells(row, col).CopySheets( 工资条 ).ActivateActiveSheet.PasteSelection.PasteSpecial Paste:=xlPasteColumnWidths, operation:=xlNone, skipblanks:=False, Transpose:=FalseFor i = 2 To row - 1Cells(i*2-1,1).SelectSelection.EntireRow.InsertNext iRange(1:1).CopyFor i = 2 To row - 1Cells(i*2

5、-1,1).SelectActiveSheet.PasteNext iApplication.CutCopyMode = FalseRange(A1).SelectEnd Sub3.2 工资查询窗口的实现 第一步:在同个工作簿中新创建一个名为“工资查询表”的 工作表,选择好一张合适的图片作为工作表背景,打开VBE窗 口界面, 在该窗口空白处单击鼠标右键, 插入并设计好一个名为“ UserFormT”的用户窗体。Private Sub CommandButton1_Click()On Error GoTo errorid = TextBox1.TextSheets( 基本资料表 ).Activa

6、teSname = Application.WorksheetFunction.VLookup(id, Range(A1:F18), 2, False)xueli = Application.WorksheetFunction.VLookup(id,Range(A1:F18), 4, False)Sheets( 工资表 ).Activategw = Application.WorksheetFunction.VLookup(id, Range(A1:H18), 4, False)zf = Application.WorksheetFunction.VLookup(id, Range(A1:H1

7、8), 5, False)tax = Application.WorksheetFunction.VLookup(id, Range(A1:H18), 6, False)bx = Application.WorksheetFunction.VLookup(id, Range(A1:H18), 7, False)gjj = Application.WorksheetFunction.VLookup(id,Range(A1:H18), 8, False)UserForm1.HideUserForm2.ShowExit Suberror:Sheets( 工资查询表 ).ActivateMsgBox

8、对不起 ,不存在这个教工编号! End Sub 第二步:设计显示查询窗口界面。 在工程资源管理器的窗口的任意位置单击鼠标右键, 插入一 个 UserForm2 用户窗体, 并将标题修改为“显示查询结果”, 并添加一系列的“标签”、“文字框”按钮,具体见图2。在VBE窗口界面中双击“显示查询结果”用户窗体打开UserForm2 代码窗口,然后添加如下代码:Private Sub UserForm_Activate()Sheets( 工资查询表 ).Activate lid.Value = id lname.Value = Sname subxueli 调用该函数lgw.Value = + + S

9、tr(gw) + 元 lzf.Value = + + Str(zf) + 元 ltax.Value = - + Str(tax) + 元lbx.Value = - + Str(bx) + 元lgjj.Value = - + Str(gjj) + 元 money = 600 + mxueli + gw + zf - tax - bx - gjj lmoney.Value = Str(money) + 元 End Sub Sub subxueli() Select Case xueli Case 专科以下 mxueli = 0lxueli.Value = xueli + 无学历加成 Case 专科

10、 mxueli = 400lxueli.Value = xueli + + + Str(mxueli) + Case 本科 mxueli = 800lxueli.Value = xueli + + + Str(mxueli) + Case 硕士 mxueli = 1200lxueli.Value = xueli + + + Str(mxueli) + Case 博士mxueli = 1600元学历越lxueli.Value = xueli + + + Str(mxueli) + 此函数假设教师的基本工资与该员工的学历有关, 高其基本工资也越高。End SelectEnd SubPrivate

11、Sub CommandButton1_Click()UserForm2.HideEnd SubPrivate Sub CommandButton2_Click() UserForm2.HideUserForm1.ShowEnd Sub4 结论 本模块的完成是在消化了由刘宇作者完成的编著 Excel 高 效办公 VBA入门与实战的基础上,结合本单位的实际情况 开发而成,在此表示感谢!作为非常流行的应用程序开发语言Visual Basic的子集,VBA具有VB语言的大多数特征和易用性, 并可以将 Excel 作为开发平台来开发应用程序,可以应用 Excel 的所有功能,例如其数据处理、数据库连接、内置函数,等等, 从而降低编程难度,加快了开发速度。对于我们来说,我们完全 可以通过VBA来编制各类专业应用,以提高日常工作的效率。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1