Excel VBA编程 典型实例——设计工资录入窗口
某单位在发放工资时,每次都需要在Excel中作表中对员工的工资的进行统计,并计算后,再次时行汇总得出最后结果,这样很容易造成操作性的错误。如果这些数据输入到用户窗体中,并使用程序来进行处理计算,则会减少操作错误的,保证了数据的安全和准确。本例将在VBE环境中设计一个工资录入的用户窗口,使用户掌握用户窗体的设计和属性的设置及事件代码的编写。
1.练习要点
●用户窗体
●使用控件
●代码
2.操作步骤:
(1)在工作表Sheet1的单元格A1至M30区域中,输入相应的信息,并设置单元格的格式,如图12-22所示。
图12-22 设置单元格
(2)在工作表Sheet2的单元格A1至G6区域中,设置单元格格式并输入工资基础设置信息,如图12-23所示。
图12-23 输入工资设置信息
提 示 | 这里所设置的员工类别对应岗位工资、补贴和养老保险,所在部门对应员工的基本工资。 |
(3)在工作表Sheet3的单元格A列到D列中输入员工的信息,如图12-24所示。
图12-24 输入员工信息
(4)进入VBE环境,创建用户窗体UserForm1,并在【控件工具箱】中,单击“标签”按钮,添加到用户窗体中,如图12-25所示。
图12-25 添加“标签”控件
(5)在用户窗体中,依次加入其他的控件,并设置控件的标题名称,如图12-26所示。
图12-26 添加其他控件
注 意 | 为了便于用户的理解,窗体上的“文字框”控件都为其指定了Text值,该值与文字框控件的“名称”相同,用户在使用时无需指定。 |
提 示 | 在添加【工资】栏中的控件时,应当先添加【工资】框架控件,然后再将控件添加到“框架”控件中。 |
(6)分别为【计算】、【确定】和【取消】按钮指定“对应键”,如图12-27所示。
图12-27 指定“对应键”
提 示 | 选择【计算】按钮,在【属性】窗口的Accelerator属性后输入“I”,在Caption属性值后添加“(I)”,即可指定“对应键” |
(7)设置【应发工资】和【实发工资】文字框的BackColor属性值为“无效文本”的,并设置Enabled属性值为False,如图12-28所示。
图12-28 设置“文字框”属性
(8)在用户窗体的【属性】窗口中,设置窗体的Caption属性的值为“员工工资录入”,并设置控件组合框、文字框、按钮的TabIndex属性的值。
(9)右击用户窗体,执行【查看代码】,打开【代码窗体】,然后在右边的列表框中选择“Initialize”事件,并在该事件中输入代码,如图12-29所示。
图12-29 输入Initialize事件代码
代码如下:
'用户窗体加载
Private Sub UserForm_Initialize()
Dim i As Integer
'绑定员工编号组合框,其中从工作表Sheet3中的单元格A2开始
For i = 2 To 20
ComboBox1.AddItem Sheet3.Range("$A" + Trim(Str(i)))
Next i
End Sub
(11)在【代码】窗口中左边的对象列表框中选择对象ComboBox1,然后为其Change事件输入代码。
代码如下:
'选择组合框后,执行的事件
Private Sub ComboBox1_Change()
Dim i As Integer
'选择编号后,自动赋值
For i = 2 To 20
'遍历工作表中员工编号
If ComboBox1.Value = Sheet3.Range("$A" + Trim(Str(i))) Then
'到匹配的值后,填充员工“姓名”、“部门”和“员工类别”
TextBox1.Value = Sheet3.Range("$B" + Trim(Str(i)))
TextBox2.Value = Sheet3.Range("$C" + Trim(Str(i)))
TextBox3.Value = Sheet3.Range("$D" + Trim(Str(i)))
End If
Next i
'通过部门信息设置基本工资的值
For i = 3 To 6
If TextBox2.Value = Sheet2.Range("$F" + Trim(Str(i))) Then
TextBox4.Value = Sheet2.Range("$G" + Trim(Str(i)))
End If
Next i
电脑编程工资多少'通过员工类别设置岗位工资、补贴、扣养老金的值
For i = 3 To 6
If TextBox3.Value = Sheet2.Range("$A" + Trim(Str(i))) Then
TextBox5.Value = Sheet2.Range("$B" + Trim(Str(i))) '岗位工资
TextBox7.Value = Sheet2.Range("$C" + Trim(Str(i))) '补贴
TextBox9.Value = Sheet2.Range("$D" + Trim(Str(i))) '养老金
End If
Next i
End Sub
(12)设置【计算】按钮的单击事件,在【代码】窗口选择对象Command3,然后为其Click事件输入代码。
代码如下:
'计算
Private Sub CommandButton3_Click()
'计算在窗体中输入的员工的工资
Dim yfgz As Single
'判断是否为空,为空后赋为0
If TextBox4.Text = "" Then
TextBox4.Text = "0"
ElseIf TextBox5.Text = "" Then
TextBox5.Text = "0"
ElseIf TextBox6.Text = "" Then
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论