1、 基于ExcelVBA的部门管理系统 8 2020年4月19日 文档仅供参考 基于Excel VBA的部门管理系统 一、实验目的: 经过本项目实践,掌握数据制作的添加、删除、更新和查询基本方法的应用。 二、实验意义: 以Excel作为数据库,制作一个部门管理模块,经过界面操作,进行方便地部门管理。对以后的相关数据管理应用具有一定的参考性和实用性。 三、模块开发技术 1、列表框ListIndex(索引)方法及属性 ColumnCount(列数),RowSource(数据源)的运用 2、数据精确查询应用; 3、ActiveWorkboo
2、k.Save(工作表保存方法)的应用; 4、Rows.Delete(删除记录方法)应用; 5、窗体加载事件的应用。 四、实验步骤: 请先完成程序填空 1、打开DepartmentInfo.xls文件,进入VBE环境,并插入一个用户窗体。界面设计如图1所示: 图1 部门管理系统界面设计 该界面包括两个框架控件,一个外列表框控件,三个标签控件,三个文字框控件和五个命令按钮控件。框架控件、标签控件和命令按钮控件经过其Caption属性更改文字,其中五个命令按钮还要将其属性中的“名称”属性的文字改成与“Caption”文字相同,这样在编写代码时就不会乱了。 2、编写窗体加载事件
3、 双击窗体(注意:不能对准窗体中的某个控件双击),即窗体中除控件以外的空白地方。进入代码编写,首先在定义两个全局变量: 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
4、 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("
5、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 = W
6、orksheets("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 W
7、ith 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 '保存数据 Cal
8、l 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、双击“更新”
9、按钮,写出退出窗口代码。 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、双击“退出”按钮,添加
10、窗体退出代码(略) 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 9、系统调试






