ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8380|回复: 4

[讨论] [求助]用excel实现工资核算

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-5-18 14:25 | 显示全部楼层 |阅读模式
我要写一篇论文《用excel实现工资核算》大家能帮我找找有关资料吗谢谢

TA的精华主题

TA的得分主题

发表于 2004-5-19 13:19 | 显示全部楼层
<P>工资管理系统设计</P><P> 刘曜 杜茂康</P><P> 当员工较多或变动频繁时,工资管理是一件麻烦的事。本文介绍了一种在 Excel上开发的工资管理系统,可以很方便地进行工资的管理。</P><P>一.工资管理系统的设计步骤</P><P>“工资管理系统”的设计步骤如下:</P><P>(1)以Excel一张工作表的一行反映一名员工的工资数据</P><P>选定Excel的一张工作表,命名为“工资单”,在该表上设计反映员工工资的栏目。如图1。</P><P> </P><P>图1  工资管理系统界面</P><P>(2)用公式建立工资数据之间的关联关系</P><P>图1中,“个人所得税”、“实领金额”、“应发工资总额”和“实发工资总额”栏数据,均通过设置公式自动生成。公式设置如图2。</P><P> </P><P>图2 工资管理系统公式设置</P><P>在“个人所得税”栏公式中的IF函数使用了嵌套的方法,分别依级确定纳税额。最高级数上限设定为月收入20000元。如果有必要,可增加嵌套层数,提高最高级数上限设定。</P><P>“应发工资总额”和“实发工资总额”栏公式,系统假定汇总至10000行。</P><P>“应扣款项”栏仅设计了“个人所得税”、“房租”、“水电费”,以及一个待定项目,可按实际需要增加栏目,并相应修改有关公式。</P><P>(3)设计一个宏,自动填充公式。</P><P>“个人所得税”和“实领金额”栏公式设计了一行,其它行公式通过设计的“计算工资”宏自动填充。宏代码为</P><P>Sub 计算工资()</P><P>   x = 5</P><P>   Do While Not (IsEmpty(Sheets("工资单").Cells(x, 1).Value))</P><P>      x = x + 1</P><P>   Loop</P><P>   '确定记录的末行数x-1.</P><P>   Range("D5:H5").Select</P><P>   '选定区域D5:H5.</P><P> Selection.AutoFill Destination:=Range(Cells(5, 4), Cells(x - 1, 8)), Type:=xlFillDefault</P><P>   '向下自动填充公式.</P><P>End Sub</P><P>为方便执行宏,“计算工资”宏赋于“工资单”上的按钮“计算工资”,参见前面图1。</P><P>二.关于“计算工资”宏的说明</P><P>1.在系统设计中,也可以不使用宏,用Excel的自动填充功能事先设定足够的“个人所得税”和“实领金额”栏公式,例如,10000行。但这样做,可能不需要这么多行公式,浪费资源,甚至影响运行速度。最好是有多少职工,就形成多少行公式,通过前面的“计算工资”宏就可以达到这一点。</P><P>2.“计算工资”宏中的自动填充公式代码</P><P>Selection.AutoFill Destination:=Range(Cells(5, 4), Cells(x - 1, 8)), Type:=xlFillDefault</P><P>是通过“录制”的方式改写而来,方法如下:</P><P>(1)选菜单栏[工具/宏/录制新宏]命令,显现“停止录制”浮标。</P><P>(2)选定区域D5:H5。</P><P>(3)光标指定区域D5:H5右下角,显现小“+”字。</P><P>(4)按下鼠标左键向下拉动填充公式,假定至第8行。</P><P>(5)点击“停止录制”浮标。</P><P>完成以上各步后,在新录制的宏中即可见第(2)至第(4)步自动填充公式操作所转换成的代码</P><P>Range("D5:H5").Select</P><P>Selection.AutoFill Destination:=Range("D5:H8"), Type:=xlFillDefault</P><P>将以上代码中的固定区域D5:H8改为变动区域Cells(5, 4), Cells(x - 1, 8)。这样,就得到了“计算工资”宏的关键代码</P><P>Selection.AutoFill Destination:=Range(Cells(5, 4), Cells(x - 1, 8)), Type:=xlFillDefault</P><P>值得特别一提的是,通过录制的方式获得关键代码,这一技术可以将困难的编程变得如此轻松,这是VBA的一大特点。</P><P>三.应用举例</P><P>假定某单位员工记录如图3。</P><P> </P><P> </P><P>图3  某单位工资记录</P><P>击“计算工资”按钮,即自动计算“个人所得税”、“实领金额”等数据,如图4。</P><P> </P><P> </P><P>图4  某单位工资清单</P><P>四.工资调整</P><P>在工资管理中,普遍的工资调整一般需要特别处理。下面的例子可以自动完成这一工作。</P><P>设某学校的职工人事数据存在Excel工作表中,如图5所示。</P><P>
图5  调整前的工作表</P><P>现在按职称提升每位职工的工资,各种职称的工作增长情况如下:教授150,副教授130,讲师100,助教80,高级工程师150,工程师140,助工90。</P><P>如果用人工的方式为每位职工增加工资,当单位人数较多时,不但麻烦,而且容易出错。</P><P>现在,在该工作薄的VBA模块中建立一个如下的函数:</P><P>Function addsalary( 职称 )</P><P>     Select Case 职称</P><P>     Case "教授", "高级工程师"</P><P>          addsalary = 150</P><P>     Case "副教授"</P><P>          addsalary = 130</P><P>     Case "讲师"</P><P>          addsalary = 100</P><P>     Case "助教"</P><P>          addsalary = 80</P><P>     Case "工程师"</P><P>          addsalary = 140</P><P>     Case "助工"</P><P>          addsalary = 90</P><P>    End Select</P><P>End Function</P><P>在VBA中,变量可以用汉字定义,所以把“职称”作为一个参数,然后用Select Case语句判定这个参数是哪种职称,并根据它的值决定增加的工资多少。比如</P><P>Case "副教授" </P><P>     addsalary = 130</P><P>其意义为:如果“职称”参数的值为“副教授”,就增加工资130元。因为教授和高级工程师增加的工资是相同的,所以把他们写在一条语句中:Case "教授", "高级工程师"  addsalary = 150。</P><P>编写好上面的函数之后,在工资表的E4单元格中输入公式“=addsalary(c4)”,然后把该公式向下填充复制到最后一位职工所在的数据行,Excel就会利用自定义函数addsalary计算出每位职工应增加的工资。E列数据计算出来之后,F列的数据就轻松可得了。图6显示出了利用自定义函数求解的结果。</P><P>
图6 用自定义函数计算增加工资</P><P>在自定义函数addsalary中使用了VBA的Select Case 语句。</P><P>Select Case语句是VBA的一种多分支情况语句,它的语法结构如下:</P><P>Select Case 测试表达式
Case  表达式1</P><P>语句块1</P><P>[ Case  表达式2</P><P>语句块2]</P><P>……</P><P>[Case Else
语句n ]</P><P>End Select </P><P>Select Case语句的功能是从多个Case语句中选择一个符合条件的Case语句执行。也可以用条件语句</P><P>If…Then</P><P>   …</P><P>Else</P><P>       …</P><P>    End If</P><P>达到同样的效果,但要麻烦得多。</P><P> 

返回

</P>

TA的精华主题

TA的得分主题

发表于 2010-1-23 02:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看起来好难

TA的精华主题

TA的得分主题

发表于 2010-2-22 15:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
为什么没有图呢?好难哦!

TA的精华主题

TA的得分主题

发表于 2010-5-17 03:45 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-27 08:15 , Processed in 0.042948 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表