ECEL人事工资管理系统操作全过程.docx
- 文档编号:25178767
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:46
- 大小:726.67KB
ECEL人事工资管理系统操作全过程.docx
《ECEL人事工资管理系统操作全过程.docx》由会员分享,可在线阅读,更多相关《ECEL人事工资管理系统操作全过程.docx(46页珍藏版)》请在冰豆网上搜索。
ECEL人事工资管理系统操作全过程
最新EXCEL人事工资管理系统
——建立人事工资管理系统工作簿
按照浙江省人事厅的统一部署,我市于2007年2月初进行了机关事业单位工资制度改革,这次工资制度改革是新中国成立以来第四次大的改革,与以往历次工资制度改革相比,也是情况最复杂、难度最大的一次,具体工改时要根据套改“三要素”(职务或职称、任职年限、套改年限)进行套改。
这对于具体负责工资调整的办事人员来说,增加了许多工作,就一所学校来说,工资调整时都要手工填写好几百张内容差不多的表格,工作量很大,本人经过摸索,发现用EXCEL的VBA功能可以轻松地处理调资工作,只要基础工作一次性做好后,调资就变得非常方便,下面简要地介绍一下具体的开发过程。
一、建立人事工资管理系统工作簿
1、在计算机的磁盘上建立一个名称为“2006人事工资管理系统”的EXCEL工作簿文件,并在此工作簿中建立“封面”、“欢迎界面”、“事业名册表”、“事业审批表”、“事业报批表”、“离退休名册表”、“离退休审批表”、“离退休报批表”等工作表,以及存放用户名和密码的工作表“用户密码”等组成,这些工作表事先由手工插入并重命名。
当系统运行后,一些工作表将被自动隐藏(如“用户密码”工作表)。
2、“封面”工作表是进入工资管理系统的首页,当打开工作簿和关闭工作簿时系统都将激活“封面”工作表,“封面”工作表的界面如图1所示,其设计步骤如下:
图1
(1)在当前的工作表中插入艺术字“欢迎使用《XG人事工资管理系统V1.0》”(分两行输入“欢迎使用”和“《XG人事工资管理系统V1.0》”)。
(2)选取整张工作表,将单元格颜色填充为“蓝-灰”色。
(3)将第36行至65536行、第R列至IV列全部隐藏。
由于用手工隐藏单元格比较麻烦,可在工作簿中的VBE窗口中插入一个模块1,并输入如下代码:
PrivateSub隐藏封面单元格()
Sheets("封面").Activate
Rows("36:
65536").Select'选中36行至65536行
Selection.EntireRow.Hidden=True'隐藏选中的单元格
Columns("r:
iv").Select'选中第R列至IV列
Selection.EntireColumn.Hidden=True
EndSub
代码说明:
以上代码是对选中的单元格进行隐藏,使系统封面更加美观。
上述代码输入完成后退出并保存,然后在【工具】→【宏】菜单中运行“隐藏封面单元格”宏,即可实现单元格的隐藏。
(4)执行【工具】→【选项】命令,打开【选项】对话框,单击【视图】选项卡,在“窗口选项中”中保留“水平滚动条”和“垂直滚动条”两个复选框外,取消其他的复选框(如图2)。
(5)执行【工具】→【保护】→【保护工作表】,打开【保护工作表】对话框,在“允许此工作表的所有用户进行”列表中取消选中的复选框,并输入密码(如图3)。
输入密码
图2图3
3、“欢迎界面”工作表的设计步骤与“封面”工作表的步骤基本相同,只不过界面中多了一个单位、制作者、操作提示和【人事管理系统】菜单(如图4)。
按此菜单
进入系统
图4
要隐藏“欢迎界面”工作表中的单元格,可在工作簿的VBE窗口中插入一个模块2,并输入如下代码如下:
PrivateSub隐藏欢迎界面单元格()
Sheets("欢迎界面").Activate
Rows("36:
65536").Select'选中36行至65536行
Selection.EntireRow.Hidden=True'隐藏选中的单元格
Columns("r:
iv").Select'选中第R列至IV列
Selection.EntireColumn.Hidden=True
EndSub
代码说明:
以上代码是对选中的单元格进行隐藏,使欢界面更加美观。
上述代码输入完成后退出并保存,然后在【工具】→【宏】菜单中运行“隐藏欢迎界面单元格”宏,即可实现“欢迎界面”工作表中单元格的隐藏。
至此人事工资管理系统工作簿建立完成,系统框架也基本形成。
2007年3月15日
通讯地址:
浙江省诸暨市滨江中路19号会计核算中心许国办公室电话
邮政编码311800Email:
网址:
最新EXCEL人事工资管理系统
——设计系统登录窗口
(一)
诸暨市教育局核算中心许国
诸暨市教育局郑文建
任何一个应用系统,都应有一个系统登录窗口,以保护应用系统的安全。
当打开应用系统时,系统将弹出登录窗口,只有输入了正确的用户名和密码后,才能进入系统。
二、用户名和密码的保存
用户名和密码既可以直接编写在登录程序中,也可以单独设计一个用来存放用户名和密码的工作表,后者具有较大的灵活性,可以随时增加用户名和密码,也可以随时更改用户名和密码。
本人事工资管理系统的登录用户名和密码的设置采用第二种方式,但用户名和密码都为预设,不能更改。
在“用户密码”工作表中的A列存放用户名(如图5),B列存放与A列用户名对应的登录密码,该工作表被保护起来,并被隐藏(用VBA代码隐藏),以防修改和泄露密码。
图5
三、用户登录窗口
1、用户登录窗口结构
用户登录窗口的结构如图6所示。
由1个用户窗体和2个标签、2个文本框及2个命令按钮组成,用户窗体和各个控件的功能及属性设置如下。
图6
(1)用户窗体:
名称重命名为“用户登录”,Caption属性设置为“用户登录”。
(2)标签Label1和Label2:
对两个文本框的功能进行说明,它们的Caption属性分别设置为“用户名”和“密码”。
(3)文本框Textbox1:
输入用户名
(4)文本框Textbox2:
输入密码,其PassworkChar属性设置为“*”。
(5)命令按钮CommandButton1:
输入正确的用户名和密码后,单击此按钮进入系统,其Caption属性设置为“进入系统”,Default属性设置为True.
(6)命令按钮CommandButton2:
退出系统,其Caption属性设置为“退出系统”。
2、登录窗口代码设计
(1)在VBE窗口的窗体设计中,双击“进入系统”按钮为其设置Click事件,程序代码如下:
PrivateSubCommandButton1_Click()
'如果出现错误,就转向错误处理程序errorhandle
OnErrorGoToerrorhandle
DimwsAsWorksheet
Setws=Worksheets("用户密码")'赋值
IfTextBox1.Text=""Then
'如果用户名为空,就将焦点移到用户名文本框,并退出程序
TextBox1.SetFocus
ExitSub:
EndIf
'如果用户名和密码都正确,就卸载用户登录窗口,
'创建自定义菜单,退出程序
Ifws.Range("a2").Text=TextBox1.Text_
Andws.Range("b2").Text=TextBox2.TextThen
Unloaduserform1
Call自定义菜单:
Sheets("欢迎界面").Activate
ExitSub
ElseIfws.Range("a2").Text=TextBox1.Text_
Andws.Range("b2").Text<>TextBox2.TextThen
MsgBox"密码错误!
",vbCritical,"警告"
TextBox2=""
TextBox2.SetFocus:
ExitSub
ElseIfws.Range("a2").Text<>TextBox1.Text_
Andws.Range("b2").Text=TextBox2.TextThen
MsgBox"用户名错误!
",vbCritical,"警告"
TextBox2=""
TextBox2.SetFocus:
ExitSub:
EndIf
MsgBox"用户名和密码不存在!
",vbCritical,"警告"
TextBox1="":
TextBox2=""
TextBox1.SetFocus:
ExitSub
errorhandle:
'进入错误处理程序
ThisWorkbook.Closesavechanges:
=False'关闭工作簿但不保存
EndSub
代码说明:
以上代码是对系统登录窗口中输入的用户名和密码与“用户密码”工作表中的用户名和密码比对,如果不正确,则弹出有关的警告信息框,如果正确,就关闭登录窗口,然后创建自定义菜单,进入欢迎界面工作簿。
(2)在VBE窗口的窗体设计中,双击“退出系统”按钮为其设置Click事件,程序代码如下:
PrivateSubCommandButton2_Click()
ThisWorkbook.Closesavechanges:
=False'关闭工作簿但不保存
EndSub
代码说明:
以上代码是在按“退出系统”按钮时关闭工作簿但不保存。
3、设计工作簿对象的Open事件程序
为了能够在打开“人事工资管理系统”工作簿时启动登录系统窗口,对工作簿对象设置Open事件程序,在VBE窗口中双击“Thisworkbook”(如图7),选择右边窗口中的Workbook和Open事件,并输入如下代码:
此处选择Workbook和Open事件
图7
PrivateSubWorkbook_Open()
Sheets("封面").Activate
Call启动系统
EndSub
代码说明:
以上代码使得在打开“人事工资管理系统”时,系统就调用“启动系统”模块,出现登录窗口。
2007年3月15日
通讯地址:
浙江省诸暨市滨江中路19号会计核算中心许国办公室电话
邮政编码311800Email:
网址:
最新EXCEL人事工资管理系统
——设计系统登录窗口
(二)
诸暨市教育局核算中心许国
诸暨市教育局郑文建
在打开“人事工资管理系统”工作簿时,首先激活工作簿对象的Open事件程序,随之会出现一个“封面工作表”和一个“登录窗口”界面,此界面需要调用下面的系统启动程序。
4、系统启动程序
在工作簿的VBE窗口中插入一个模块3,输入如下代码:
PublicSub启动系统()
Worksheets("封面").Activate
Range("a1").Activate
ActiveWindow.DisplayWorkbookTabs=False'不显示工作表标签
IfWorksheets("用户密码").Visible=TrueThen
'如果用户密码表不隐藏,就隐藏它
Worksheets("用户密码").Visible=xlSheetVeryHidden
EndIf
'保护封面工作表
ActiveSheet.ProtectDrawingObjects:
=True,contents:
=True,Scenarios:
=True
ActiveSheet.EnableSelection=xlNoSelection
userform1.Show'启动用户登录窗口
EndSub
代码说明:
以上代码首先激活“封面”工作表,然后隐藏工作表标签,判断“用户密码”工作表是否隐藏,如果不隐藏,就隐藏它,并对“封面”工作表进行保护,启动用户登录窗口。
5、人事管理菜单程序
在登录窗口中输入正确的用户名和密码后,就可进入人事管理系统的欢迎界面,如图8。
人事管理系统菜单
图8
图中的“人事管理菜单”需要调用“自定义菜单”程序,此程序可在工作簿的VBE窗口中插入一个模块4生成,其完整代码如下:
DimmymenuobjectAsCommandBarPopup
DimmymenuitemAsObject
DimmysubmenuitemAsObject
PublicSub自定义菜单()
OnErrorResumeNext'如果出现错误,就忽略它,继续运行程序
'删除已经存在的自定义菜单
Application.CommandBars
(1).Controls("【人事管理系统】").Delete
'创建自定义菜单
Setmymenuobject=Application.CommandBars
(1)._
Controls.Add(Type:
=msoControlPopup,before:
=11,temporary:
=True)
Withmymenuobject
.Caption="【人事管理系统】"
.Width=70:
.BeginGroup=True:
EndWith
'为自定义菜单添加“事业在职”主菜单并添加有关的子菜单
Call主菜单("事业在职")
Call子菜单("在职名册表","在职名册表")
Call子菜单("在职审批表","在职审批表")
Call子菜单("在职报批表","在职报批表")
Call主菜单("事业离退休")
Call子菜单("离退休名册表","离退休名册表")
Call子菜单("离退休审批表","离退休审批表")
Call子菜单("离退休报批表","离退休报批表")
EndSub
'子程序“主菜单”
PublicSub主菜单(mycapTionAsString)
Setmymenuitem=mymenuobject.Controls.Add(Type:
=msoControlPopup)
Withmymenuitem
.Caption=mycapTion
.BeginGroup=True:
EndWith
EndSub
'子程序“子菜单”
PublicSub子菜单(mycapTionAsString,myonactionAsString)
Setmysubmenuitem=mymenuitem.Controls.Add(Type:
=msoControlButton)
Withmysubmenuitem
.Caption=mycapTion
.OnAction=myonaction
.BeginGroup=True:
EndWith
EndSub
注:
为节省篇幅,在一行中使用了冒号隔开多条指令(下同)。
代码说明:
以上代码是在进入系统后首先删除已经存在的自定义菜单,然后再创建一个自定义菜单,并调用子程序的“主菜单”和“子菜单”程序。
6、激活人事管理菜单
为了能使上面创建的“人事管理系统”菜单能够使用,必须使用程序激活,可在工作簿的VBE窗口中插入一个模块5完成,其完整代码如下:
PrivateSub在职名册表()
Sheets("事业").Activate
EndSub
PrivateSub在职审批表()
Sheets("事业审批表").Activate
EndSub
PrivateSub在职报批表()
Sheets("事业(报批表)").Activate
EndSub
PrivateSub离退休名册表()
Sheets("离退休").Activate
EndSub
PrivateSub离退休审批表()
Sheets("离退休审批表").Activate
EndSub
PrivateSub离退休报批表()
Sheets("离退休(报批表)").Activate
EndSub
代码说明:
以上代码是在分别单击“人事管理系统”菜单中的“在职名册表”等子菜单时,激活自定义菜单,然后相应激活各自的工作表,激活后即可对工作表进行操作。
至此,系统登录窗口的设计工作完成,为用户提供了一个比较友好的人机交互界面。
2007年3月15日
通讯地址:
浙江省诸暨市滨江中路19号会计核算中心许国办公室电话
邮政编码311800Email:
网址:
最新EXCEL人事工资管理系统
——设计在职人员工改名册表
(一)
诸暨市教育局核算中心许国
诸暨市教育局郑文建
进入系统后,选择【人事管理系统】→【事业在职】→【在职名册表】菜单,即可打开“诸暨市事业单位工作人员收入分配制度改革名册表”(以下简称在职名册表),如图9。
图9
四、在职名册表
1、按工改的要求设计好此表格的相应栏目,然后输入单位工作人员的相关信息,其中A列至S列的信息由手工输入,W列的信息如果与K列的信息一致,则可由计算自动给出,如果不一致,则需手工输入,这里我们暂以手工输入为例说明,其他列的信息由计算机自动给出。
2、表中的岗位名称,职务名称要统一标准。
(1)岗位名称分为管理、专技、工人、见习。
(2)职务名称要按岗位分为四大类,其中管理岗位的职务名称分为处级正职、处级副职、科级正职、科级副职、科员、办事员;专技岗位的职务名称分为正高、副高、中级、助理级、员级;工人岗位的职务名称分为高级级技师、技师、高级工、中级工、初级工、普工。
见习岗位(即新分配人员)的职务名称为见习。
(3)岗位为见习的人员,由于在城区和非城区工作其工资标准有差别,必须在备注栏列注明是“城区”还是“非城区”。
3、需要手工输入的信息录入完成后,我们就需要对计算机自动给出的列进行处理。
(1)T列(工改前工资中的津贴30%)、U列(工改前工资中的10%浮动工资)和AB列(工改后工资中的10%浮动工资)工资标准的处理。
在工作簿的VBE窗口中插入一个模块6,并输入代码如下:
PrivateSub津贴30及浮动10()
Row=Worksheets("事业").[a65536].End(xlUp).Row'取得行数
Application.ScreenUpdating=False'关闭屏幕更新
Fori=8ToRow
'如果J列I行单元格为"管理"或者"专技",那么T列,U列,AB列的公式如下
IfRange("j"&i)="管理"OrRange("j"&i)="专技"Then
Range("T"&i)=WorksheetFunction.Round(Range("s"&i)*1.1*3/7,0)
Range("u"&i)=WorksheetFunction.Round(Range("s"&i)*0.1,0)
Range("AB"&i)=WorksheetFunction.Round((Range("Y"&i)+Range("aa"&i))*0.1,0)
'如果J列I行单元格为"工人",那么T列的公式如下,,U列和AB列的值为15
ElseIfRange("j"&i)="工人"Then
Range("T"&i)=WorksheetFunction.Round(Range("s"&i)*3/7,0)
Range("u"&i)=15
Range("AB"&i)=15
'如果J列I行单元格为"见习",并且AF列I行单元格为"非城区",那么T列的公式如下,,U列和AB列的值为0
ElseIfRange("j"&i)="见习"AndRange("af"&i)="非城区"Then
Range("T"&i)=WorksheetFunction.Round(Range("s"&i)*3/7,0)
Range("u"&i)=0
Range("AB"&i)=0
'如果J列I行单元格为"见习",并且AF列I行单元格为"城区",那么T列,U列,AA列和AB列的值为0
ElseIfRange("j"&i)="见习"AndRange("af"&i)="城区"Then
Range("T"&i)=0
Range("u"&i)=0
Range("AB"&i)=0
Range("aa"&i)=0
EndIf:
Nexti
Application.ScreenUpdating=True'打开屏幕更新
EndSub
代码说明:
以上代码是在先判断J列I行单元格以及AF列I行单元格的内容,然后根据此内容对T列、U列和AB列进行处理,自动获得相应公式或数值。
上述代码输入完成后退出并保存,然后在【工具】→【宏】菜单中运行“津贴30及浮动10”宏,即可得到T列、U列和AB列的值。
(2)Y列单元格的数据处理。
Y列为工改后的岗位工资标准,岗位工资的标准是根据现任职称或职务而定的,如中级职称为680元,要使此列的标准自动给出,需建立一个自定义函数,具体可在工作簿的VBE窗口中插入一个模块7完成,其完整代码如下:
Functiongz(aAsString)AsSingle
gz=0
'如果职务为处级正职,那么岗位工资为1045
Ifa="处级正职"Thengz=1045
ElseIfa="处级副职"Thengz=850
ElseIfa="科级正职"Thengz=720
ElseIfa="科级副职"Thengz=640
ElseIfa="科员"Thengz=590
ElseIfa="办事员"Thengz=550
ElseIfa="正高"Thengz=1420
ElseIfa="副高"Thengz=930
ElseIfa="中级"Thengz=680
ElseIfa="助理级"Thengz=590
ElseIfa="员级"Thengz=550
ElseIfa="高级技师"Thengz=830
ElseIfa="技师"Thengz=690
ElseIfa="高级工"Thengz=615
ElseIfa="中级工"Thengz=575
ElseIfa="初级工"Thengz=545
ElseIfa="普工"Thengz=540
Else:
EndIf
EndFunction
代码说明:
以上代码是一个自定义函数,函数名gz,a为变量,代表职称或职务,如职务为处级正职,则岗位工资为1045元。
上述代码输入完成后退出并保存,在Y8单元格中输入“=gz(w8)”,可得到Y8单元格的值,向下拖动此公式可得到其他单元格的岗位工资标准。
2007年3月15日
此文在《软件报》2007年第14期开始连载
通讯地址:
浙江省诸暨市滨江中路19号会计核算中心许国办公室电话
邮政编码311800Email:
网址:
最新EXCEL人事工资管理系统
——设计在职人员工改名册表
(二)
诸暨市教育局核算中心许国
诸暨市教育局郑文建
(3)X列单元格的数据处理。
X列为工改后岗位工资的岗位级别,它与岗位工资的标准或职称
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ECEL 人事 工资管理 系统 操作 全过程