Excel VBA高效办公应用-第十三章-工资条与工资查询-Part2 (工资条查询)

来源:互联网 发布:js点击调用函数 编辑:程序博客网 时间:2024/04/25 08:32

Excel竟然可以做出一个像模像样的查询系统,见识了。



Option ExplicitPrivate Sub CommandButton1_Click()On Error GoTo Doerror '由于输入非法员工号码会引起错误    Sid = TextBox1.Text '获得员工ID号    Sheets("销售部员工信息表").Activate '激活员工信息表    '在员工信息表中查找对应员工ID号码的姓名    Sname = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 2, False)    '在员工信息表中查找对应员工ID号码的学历    Sxueli = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 5, False)    Sheets("1月出勤加班统计表").Activate '激活1月出勤加班统计表    '在1月出勤加班统计表中查找对应员工ID号码的迟到次数    Icidao = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 4, False)    '在1月出勤加班统计表中查找对应员工ID号码的旷工次数    Ikuang = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 5, False)    '在1月出勤加班统计表中查找对应员工ID号码的加班次数    Ijiaban = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 6, False)    Sheets("1月销售业绩表").Activate '激活1月销售业绩表    '在1月销售业绩表中查找对应员工ID号码的销售台数    Itai = Application.WorksheetFunction.VLookup(Val(Sid), Range("A1:F1000"), 4, False)    UserForm1.Hide  '隐藏UserForm1    UserForm2.Show  '激活UserForm2    Exit SubDoerror:    Sheets("工资查询表").Activate    MsgBox "销售部没有这个员工号码"End Sub
Option Explicit'IMoneyXueli表示学历对应的金钱,其它同理Dim IMoneyXueli As Integer, IMoneyCidao As Integer, IMoneykuang As IntegerDim IMoneyJiaban As Integer, IMoneyTai As Integer, IMoneyJieguo As IntegerSub SubXueli()Select Case Sxueli '判断学历    Case "专科以下"        IMoneyXueli = 0 '专科生以下不加钱            '在学历标签上显示其学历及加的钱        Lbxueli.Caption = Sxueli + "   +" + Str(IMoneyXueli) + "元"    Case "专科"        IMoneyXueli = 400 '专科生加400元            '在学历标签上显示其学历及加的钱        Lbxueli.Caption = Sxueli + "   +" + Str(IMoneyXueli) + "元"    Case "本科"        IMoneyXueli = 800  '本科生加800元            '在学历标签上显示其学历及加的钱        Lbxueli.Caption = Sxueli + "   +" + Str(IMoneyXueli) + "元"    Case "硕士"        IMoneyXueli = 1200  '专科生加1200元            '在学历标签上显示其学历及加的钱        Lbxueli.Caption = Sxueli + "   +" + Str(IMoneyXueli) + "元"    Case "博士"        IMoneyXueli = 1600  '专科生加1600元            '在学历标签上显示其学历及加的钱        Lbxueli.Caption = Sxueli + "   +" + Str(IMoneyXueli) + "元"End SelectEnd SubPrivate Sub CommandButton1_Click()'单击确定则退出窗体UserForm2.HideEnd SubPrivate Sub CommandButton2_Click()UserForm2.Hide '退出当前窗体UserForm1.Show '继续查询End SubPrivate Sub UserForm_Activate()'激活"工资查询表"Sheets("工资查询表").Activate'不能直接在Text函数里将格式"000"换成"MT01001"LbId.Caption = "MT01" + Application.WorksheetFunction.Text(Val(Sid), "000") '取得员工号码SubXueli '计算与学历相关的金钱Lbname.Caption = Sname '取得员工姓名        '计算迟到扣款项    IMoneyCidao = Icidao * 100 '迟到一次扣100        '在迟到标签上显示其迟到所扣的钱    Lbcidao.Caption = Str(Icidao) + "   -" + Str(IMoneyCidao) + "元"        '计算旷工所扣的钱,旷一次课减去300元    IMoneykuang = Ikuang * 300        '在旷工标签上显示其旷工所扣的钱    Lbkuang.Caption = Str(Ikuang) + "   -" + Str(IMoneykuang) + "元"        '计算加班费,加一次班加200元    IMoneyJiaban = Ijiaban * 200        '在加班标签上显示其加班费    Lbjiaban.Caption = Str(Ijiaban) + "   +" + Str(IMoneyJiaban) + "元"        '计算销售提成的钱数    IMoneyTai = Itai * 30        '在销售提成标签上显示其提成收入    Lbtai.Caption = Str(Itai) + "   +" + Str(IMoneyTai) + "元"        '计算最后工资收入,2000是基本工资,400是基本奖金,600是水电餐费及三险一金    IMoneyJieguo = 2000 + IMoneyXueli + 400 - IMoneyCidao - IMoneykuang + _    IMoneyJiaban + IMoneyTai - 600        '在最后工资标签上显示其应发工资    Lbjieguo.Caption = Str(IMoneyJieguo) + "元"End Sub


Option ExplicitPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)'定义触发事件调出查询窗口UserForm1.ShowEnd Sub




阅读全文
0 0