《《VBA综合训练》实习讲解PPT.ppt》由会员分享,可在线阅读,更多相关《《VBA综合训练》实习讲解PPT.ppt(18页珍藏版)》请在三一办公上搜索。
1、,VBA综合训练实习报告,计应1032班 范鹏,VBA综合训练,成绩管理系统,人事管理系统,VBA综合训练,成绩管理系统,VBA综合训练,成绩管理系统,实习目的 掌握VBA程序设计语言的基础知识,能达到利用VBA编程思想和技巧实现各种高效自动化办公应用,在实习中掌握基本的语法知识和编写代码时的注意事项,还有对窗体的相关操作,控件的恰当选择,相关属性的修改这些都是需要在实习过程中掌握的。当然,另一方面加深我们对VBA课程的理解。实习内容 成绩管理系统用于实现学校学生成绩评估的自动化,让老师可以从手工评估中解脱出来。提高学校办公的速率,以便对于其他工作的完成和安排。,VBA综合训练,成绩管理系统,
2、设计流程图,编程思路 如图所示,此成绩管理系统共分为两类,即数据类和查询类数据类包括添加班级、添加学生、更新学生分数,查询类包括查询学生信息、打印分数单、统计情况。本项目设计包括工作表宏及窗体的应用。,VBA综合训练,成绩管理系统,高级查询切换到普通查询:Private Sub CommandButton3_Click()UserForm2.Hide UserForm1.ShowEnd Sub普通查询切换到高级查询:Private Sub CommandButton3_Click()UserForm1.Hide UserForm2.ShowEnd Sub,普通查找与高级查找,VBA综合训练,成
3、绩管理系统,添加班级信息,Private Sub CommandButton1_Click()If ComboBox1.Text=Or TextBox1.Text=Then MsgBox 请填写齐全,1+64,系统登录 TextBox1.SetFocusElse If 取指定用户密码(ComboBox1)=TextBox1.Text Then Unload Me MsgBox ComboBox1.Text&你好!欢迎你进入本系统,1+64,欢迎词 Application.Visible=True ActiveWorkbook.Unprotect Password:=123 Sheets(主界面
4、).Visible=True Sheets(主界面).Activate ActiveWorkbook.Protect Password:=123 Else MsgBox 登录密码错误,请重新输入 End IfEnd IfEnd SubPrivate Sub CommandButton2_Click()Unload Me Application.Visible=False ActiveWorkbook.Close SaveChanges:=False ThisWorkbook.Close True 不需要保存:falseEnd Sub,VBA综合训练,成绩管理系统,生成分数单 分数单可以用来给学
5、生发送成绩,要求每人的分数单中都要有该考生完整信息和对应标题。它的作用就是给每个学生分数信息记录加上一个标题栏。因为是在电子表“分数单”中来实现,所以在电子表中添加了“命令按钮”,方便代码的书写和实现该操作。同时,为了方便数据清除,同时添加了一个清除数据的宏。,Dim TempX As Integer Dim TempY As Integer Dim TempCount As Integer TempCount=3 TempY=4 While(Not IsEmpty(Sheets(学生分数表).Cells(TempCount,1).Value)TempX=1 While(Not IsEmpty
6、(Sheets(学生分数表).Cells(2,TempX).Value)Sheets(分数单).Cells(TempY,TempX).Value=Sheets(学生分数表).Cells(2,TempX).Value Sheets(分数单).Cells(TempY+1),TempX).Value=Sheets(学生分数表).Cells(TempCount,TempX).Value TempX=TempX+1 Wend TempY=TempY+2 TempCount=TempCount+1 Wend,VBA综合训练,成绩管理系统,Dim i As Integer Dim banji As Stri
7、ng For i=1 To Sheets(班级表).Range(A1).CurrentRegion.Rows.Count-1 class=0 classvalue=0 banji=Trim(Sheets(班级表).Cells(i+1,1).Value)Sheets(统计表).Cells(i+11,1).Value=banji If(banji=Trim(Sheets(学生信息表).Cells(j,4).Value)Then class=class+1 TempX=3 While(Not IsEmpty(Sheets(学生分数表).Cells(TempX,1).Value)If(Sheets(学
8、生信息表).Cells(j,1).Value=Sheets(学生分数表).Cells(TempX,1).Value)Then classvalue=classvalue+CInt(Sheets(学生分数表).Cells(TempX,10).Value)End If TempX=TempX+1 Wend End If Next j Sheets(统计表).Cells(i+11,2).Value=class If class=0 Then Sheets(统计表).Cells(i+11,3).Value=0 Else Sheets(统计表).Cells(i+11,3).Value=classvalu
9、e/class End If Next i TempY=3 While(Not IsEmpty(Sheets(学生信息表).Cells(TempY,1).Value)If(男=Sheets(学生信息表).Cells(TempY,3).Value)Then boy=boy+1 TempX=3 While(Not IsEmpty(Sheets(学生分数表).Cells(TempX,1).Value)If(Sheets(学生信息表).Cells(TempY,1).Value=Sheets(学生分数表).Cells(TempX,1).Value)Then boyValue=boyValue+CInt(
10、Sheets(学生分数表).Cells(TempX,10).Value)End If TempX=TempX+1 Wend ElseIf(女=Sheets(学生信息表).Cells(TempY,3).Value)Then girl=girl+1 TempX=3 While(Not IsEmpty(Sheets(学生分数表).Cells(TempX,1).Value)If(Sheets(学生信息表).Cells(TempY,1).Value=Sheets(学生分数表).Cells(TempX,1).Value)Then girlValue=girlValue+CInt(Sheets(学生分数表)
11、.Cells(TempX,10).Value)End If TempX=TempX+1 Wend End If TempY=TempY+1 Wend,生成统计表统计表是来完成学生信息的综合统计,包括班级、全年级、男女生的整体情况,在此功能中涉及到诸多变量,从各个班级人数到各个班级总分,还有男女生人数和男女生总分,以至于最后的各项平均分。同时添加了清除数据信息的宏,此宏可以让数据区域清空。在电子表中添加相应控件与所编写的代码相联系,实现其自动统计信息的功能。,VBA综合训练,成绩管理系统,需要注意的是在最后,需要在thisworkbook对象中输入如下语句:Private Sub Workboo
12、k_Open()Application.Visible=False UserForm6.Show Sheets(主界面).ScrollArea=$A$1End Sub,主界面,VBA综合训练,人事管理系统,VBA综合训练,人事管理系统,实习目的 掌握VBA程序设计语言的基础知识,能达到利用VBA编程思想和 技巧实现各种高效自动化办公应用,在实习中掌握基本的语法知识和编写代码时的注意事项,还有对窗体的相关操作,控件的恰当选择,相关属性的修改这些都是需要在实习过程中掌握的。当然,另一方面加深我们对VBA课程的理解。实习内容 人事管理系统用于实现公司员工的信息管理的自动化,从而提高公司人事管理方面的
13、办公速率,以便对于其他工作的完成和安排。进一步的提高我们的VBA综合能力。让我们VBA知识学的更扎实。,VBA综合训练,人事管理系统,设计流程图,编程思路人事管理系统只要包括添加员工信息、修改员工信息、查询员工信息、删除员工信息等方面。其中最重要的是在查询员工信息时能同时显示出员工的相片信息,这是这个项目的难点及亮点。,VBA综合训练,人事管理系统,Private Sub 查询_Click()Dim X As Integer,Y As Integer,Mcol As IntegerDim Mrng As Range,Mrng1 As RangeDim MF As StringDim Msh A
14、s WorksheetIf 员工编号=Then Exit SubMF=员工编号.Text清空所有内容员工编号.Text=MF员工照片.Picture=LoadPictureOn Error Resume Next员工照片.Picture=LoadPicture(ThisWorkbook.Path&/员工照片/&员工编号.Text&.jpg)Set Mrng1=Sheets(员工信息).Cells.Find(员工编号)If Not Mrng1 Is Nothing Then Set Msh=Sheets(员工信息)Else Set Msh=Sheets(离职员工信息)End IfWith Msh
15、 Y=.Cells.Find(员工编号).Row Mcol=.Cells.Find(Me.Controls(X).Name).Column Me.Controls(X).Text=.Cells(Y,Mcol)Next XEnd WithSet Mrng=NothingSet Msh=NothingExit SubEnd Sub,VBA综合训练,人事管理系统,VBA综合训练,人事管理系统,*开始添加文件子菜单*Set 子菜单=主菜单.Controls.Add(Type:=msoControlPopup)子菜单.Caption=文件(&F)With 子菜单 Set BER=.Controls.Ad
16、d(Type:=msoControlButton)With BER.Caption=保存.BeginGroup=True.OnAction=保存.FaceId=3 End With Set BER=.Controls.Add(Type:=msoControlButton)With BER.Caption=打印预览.BeginGroup=True.OnAction=打印预览.FaceId=109 End With Set BER=.Controls.Add(Type:=msoControlButton)With BER.Caption=打印.FaceId=4.OnAction=打印 End Wi
17、th Set BER=.Controls.Add(Type:=msoControlButton)With BER.Caption=退出.BeginGroup=True.OnAction=退出.FaceId=1640 End With End With。,自定义菜单和自定义工具栏,VBA综合训练,实习总结,这次实习我得到了以下的一些经验:一是掌握最好的方式就是使用,从基础学起,多练习多动脑筋。二是通过示例可以加速学习程序设计概念的过程。三是好的教材和示例是提高的得力助手。四是实用程序不一定很复杂,有一些最有用的实用程序实际上非常简单。试验是掌握VBA的关键;Excel几乎可以做任何事情,所以我们以后还要加强对VBA源代码的学习,特别是高质量源代码的学习。,谢 谢 观 赏,