使用vba制作学生管理系统,功能 增删改查,使用按钮
时间: 2023-07-20 14:20:01 浏览: 204
好的,下面是一个简单的使用VBA制作学生管理系统的示例,包括增删改查功能和按钮。请注意,这只是一个基础示例,您可以根据自己的需求进行修改和扩展。
首先,在Excel中创建一个新的工作表,并将其命名为“学生管理系统”。
接下来,从“开发工具”菜单中选择“插入”按钮,并在工作表上创建4个按钮,分别命名为“新增”,“删除”,“修改”和“查询”。
接着,在VBA编辑器中创建一个新的模块,并在其中编写以下代码:
```
Option Explicit
'定义一个结构体,用于存储学生信息
Type Student
Name As String
Age As Integer
Gender As String
Grade As Integer
End Type
'定义一个动态数组,用于存储所有学生信息
Dim Students() As Student
Dim TotalStudents As Integer
'新增学生信息
Sub AddStudent()
'弹出输入框,让用户输入学生信息
Dim NewStudent As Student
NewStudent.Name = InputBox("请输入学生姓名:")
NewStudent.Age = InputBox("请输入学生年龄:")
NewStudent.Gender = InputBox("请输入学生性别:")
NewStudent.Grade = InputBox("请输入学生年级:")
'将新学生信息添加到数组中
TotalStudents = TotalStudents + 1
ReDim Preserve Students(1 To TotalStudents)
Students(TotalStudents) = NewStudent
'刷新学生列表
RefreshStudentList
End Sub
'删除学生信息
Sub DeleteStudent()
'弹出输入框,让用户输入要删除的学生姓名
Dim NameToDelete As String
NameToDelete = InputBox("请输入要删除的学生姓名:")
'查找要删除的学生信息
Dim i As Integer
Dim Found As Boolean
Found = False
For i = 1 To TotalStudents
If Students(i).Name = NameToDelete Then
Found = True
Exit For
End If
Next i
'如果找到了要删除的学生信息,则从数组中删除
If Found = True Then
For j = i To TotalStudents - 1
Students(j) = Students(j + 1)
Next j
TotalStudents = TotalStudents - 1
ReDim Preserve Students(1 To TotalStudents)
'刷新学生列表
RefreshStudentList
Else
MsgBox "未找到要删除的学生信息!"
End If
End Sub
'修改学生信息
Sub ModifyStudent()
'弹出输入框,让用户输入要修改的学生姓名
Dim NameToModify As String
NameToModify = InputBox("请输入要修改的学生姓名:")
'查找要修改的学生信息
Dim i As Integer
Dim Found As Boolean
Found = False
For i = 1 To TotalStudents
If Students(i).Name = NameToModify Then
Found = True
Exit For
End If
Next i
'如果找到了要修改的学生信息,则弹出输入框让用户修改信息
If Found = True Then
Students(i).Age = InputBox("请输入学生年龄:", , Students(i).Age)
Students(i).Gender = InputBox("请输入学生性别:", , Students(i).Gender)
Students(i).Grade = InputBox("请输入学生年级:", , Students(i).Grade)
'刷新学生列表
RefreshStudentList
Else
MsgBox "未找到要修改的学生信息!"
End If
End Sub
'查询学生信息
Sub SearchStudent()
'弹出输入框,让用户输入要查询的学生姓名
Dim NameToSearch As String
NameToSearch = InputBox("请输入要查询的学生姓名:")
'查找要查询的学生信息
Dim i As Integer
Dim Found As Boolean
Found = False
For i = 1 To TotalStudents
If Students(i).Name = NameToSearch Then
Found = True
Exit For
End If
Next i
'如果找到了要查询的学生信息,则显示在消息框中
If Found = True Then
MsgBox "姓名:" & Students(i).Name & vbCrLf & "年龄:" & Students(i).Age & vbCrLf & "性别:" & Students(i).Gender & vbCrLf & "年级:" & Students(i).Grade
Else
MsgBox "未找到要查询的学生信息!"
End If
End Sub
'刷新学生列表
Sub RefreshStudentList()
'清空原有的学生列表
Range("A2:D" & Rows.Count).ClearContents
'将所有学生信息显示在列表中
Dim i As Integer
For i = 1 To TotalStudents
Cells(i + 1, 1).Value = Students(i).Name
Cells(i + 1, 2).Value = Students(i).Age
Cells(i + 1, 3).Value = Students(i).Gender
Cells(i + 1, 4).Value = Students(i).Grade
Next i
End Sub
```
以上代码中,我们首先定义了一个结构体`Student`,用于存储学生信息。然后,我们创建了一个动态数组`Students`,用于存储所有学生信息,并定义了一个变量`TotalStudents`,记录当前学生数量。
接着,我们编写了4个子程序,分别实现了新增、删除、修改和查询学生信息的功能。在这些子程序中,我们使用了输入框和消息框来与用户交互,使用循环和条件语句来查找和操作学生信息,同时也调用了`RefreshStudentList`子程序来刷新学生列表。
最后,我们编写了`RefreshStudentList`子程序,用于将所有学生信息显示在工作表中的列表中。
现在,我们需要将这些子程序分别与4个按钮关联起来。在VBA编辑器中,双击每个按钮,然后在弹出的代码窗口中输入对应的子程序名即可。
现在,我们已经完成了使用VBA制作学生管理系统的基本操作。当您点击相应的按钮时,就可以执行对应的功能了。您可以根据自己的需求对代码进行修改和扩展,以实现更多功能。
阅读全文