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

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



Option Explicit

Private 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 Sub
Doerror:
    Sheets("工资查询表").Activate
    MsgBox "销售部没有这个员工号码"
End Sub
Option Explicit
'IMoneyXueli表示学历对应的金钱,其它同理
Dim IMoneyXueli As Integer, IMoneyCidao As Integer, IMoneykuang As Integer
Dim IMoneyJiaban As Integer, IMoneyTai As Integer, IMoneyJieguo As Integer
Sub 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 Select
End Sub

Private Sub CommandButton1_Click()
'单击确定则退出窗体
UserForm2.Hide
End Sub

Private Sub CommandButton2_Click()
UserForm2.Hide '退出当前窗体
UserForm1.Show '继续查询
End Sub

Private 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 Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'定义触发事件调出查询窗口
UserForm1.Show
End Sub




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值