一个基于Excel VBA的部门管理系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K2MG-EHSWI++04-001 环境、健康安全、企业社会责任目标指标
一个基于Excel VBA的部门管理系统的设计与实现
一、实验目的:
通过本项目实践,掌握数据制作的添加、删除、更新和查询基本方法的应用。
二、实验意义:
以Excel作为数据库,制作一个部门管理模块,通过界面操作,进行方便地部门管理。
对以后的相关数据管理应用具有一定的参考性和实用性。
三、模块开发技术
1、列表框ListIndex(索引)方法及属性ColumnCount(列数),RowSource(数据源)的运用2、数据精确查询应用;
3、ActiveWorkbook.Save(工作表保存方法)的应用;
4、Rows.Delete(删除记录方法)应用;
5、窗体加载事件的应用。
四、实验步骤:
请先完成程序填空
1、打开DepartmentInfo.xls文件,进入VBE环境,并插入一个用户窗体。
界面设计如图1所示:
图1部门管理系统界面设计
该界面包括两个框架控件,一个外列表框控件,三个标签控件,三个文字框控件和五个命令按钮控件。
框架控件、标签控件和命令按钮控件通过其Caption属性更改文字,其中五个命令按钮还要将其属性中的“名称”属性的文字改成与“Caption”文字相同,这样在编写代码时就不会乱了。
2、编写窗体加载事件。
双击窗体(注意:不能对准窗体中的某个控件双击),即窗体中除控件以外的空白地方。
进入代码编写,首先在定义两个全局变量:
Dim cs As Long
Dim rs As Long
然后在通用栏下拉框中选择UserForm,在右边栏下拉框中选择Initialize,则自动生成:
Private Sub UserForm_Initialize()
End Sub
在Sub与End Sub之间输入如下代码:
Worksheets("Sheet1").Select
cs = Worksheets("Sheet1").Range("a1").End(xlToRight).Column
rs = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
ListBox1.ColumnCount = cs
ListBox1.RowSource = Worksheets("Sheet1").Range("A2:" & Chr$(64 + cs) & rs & "").Address Worksheets("Sheet1").Select
cs = Worksheets("Sheet1").Range("a1").End(xlToRight).Column
r = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
ListBox1.ColumnCount = cs
ListBox1.RowSource = Worksheets("Sheet1").Range("A2:" & Chr$(64 + cs) & rs & "").Address
3、双击“查询”按钮,在在Sub和End Sub之间输入如下代码:
If TextBox1.Text = "" Then
MsgBox "请输入需要查询部门的编号"
Exit Sub
End If
With Worksheets("Sheet1")
rs = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
For i = 2 To rs
If .Cells(i, 3) = TextBox1.Text Then
TextBox1.Text = .Cells(i, 3)
TextBox2.Text =.Cells(i, 1)
TextBox3.Text = .Cells(i, 2)
Exit For
End If
Next
End With
4、双击“添加”按钮,在Sub和End Sub之间输入如下代码:
Dim ncs As Long
ncs = Worksheets("Sheet1").Range("A65536").End(xlUp).Row + 1 '增加新一行
With Worksheets("Sheet1")
.Cells(ncs, 3) = TextBox1.Text
.Cells(ncs, 1) = TextBox2.Text
.Cells(ncs, 2) = TextBox3.Text
End With
ActiveWorkbook.Save '保存数据
Call UserForm_Initialize '调用窗体加载事件,重新加载数据,以显示新添加的数据。
TextBox1.Text = "" '清空文字框中的文本
TextBox2.Text = ""
TextBox3.Text = ""
5、双击“删除”按钮,在Sub和End Sub之间输入如下代码:
cs = ListBox1.ListIndex + 1 '获取鼠标点击列表框的记录
If cs = 0 Then
MsgBox "请选择一条数据"
Exit Sub
End If
Rows(cs + 1).Delete '删除当前选定的记录
6、双击“更新”按钮,写出退出窗口代码。
If TextBox1.Text =”” and TextBox2.Text = "" And TextBox3.Text = "" Then
MsgBox "请先进行相应的数据查询"
End If
Cells(cs, 3) = TextBox1.Text
Cells(cs, 1)= TextBox2.Text
Cells(cs, 2) = TextBox3.Text
ActiveWorkbook.Save '保存更新数据
UserForm_Initialize '调用窗体加载事件以显示更新后的数据
7、双击“退出”按钮,添加窗体退出代码(略)
Unload Me
8、运行上节课的添加菜单知识,为该窗口做一个菜单放在Excel菜单栏中。
在工程窗口中双击“ThisWorkbook”打开代码编辑窗口,建立两个过程,代码如下。
Sub showDepartionInfo()
UserForm1.Show
End Sub
Private Sub Workbook_Open()
MenuBars(xlWorksheet).Menus.Add("信息管理(&S)").MenuItems.Add("部门信息管理(&G)...").OnAction = "ThisWorkbook.showDepartionInfo"
End Sub
不是每个人都能成为,自己想要的样子,但每个人,都可以努力,成为自己想要的样子。
相信自己,你能作茧自缚,就能破茧成蝶。