“什么?才学了点皮毛就可以开发系统了?”我想您读到这儿,看到本篇的题目,一定会感到非常疑惑。
“什么?才学了点皮毛就可以开发系统了?”我想您读到这儿,看到本篇的题目,一定会感到非常疑惑。
如果您仔细体会了前面的小短文内容,就可以开始着手来试着做一些有趣的事情了。不错!现在我们就尝试用已学到的知识来逐步开发一套小系统。为何这么快就可以运用VBA来开始实战了呢?这就是Excel作为一个开发平台的优势!
不过,在未开始之前,还是得声明一点,此时编写的代码会很“古板”,有很多约束,实现的功能也有限,你会觉得完全没有必要用VBA代码来实现。但我们此刻的目的是让您能够体会到Excel VBA的初步魅力,以及使用VBA实现手动操作的方法,更重要的是让您巩固前一阶段所学习到的知识。随着更加深入的学习,我们会逐步改善这个系统,使用的知识和技巧也会越多,系统功能也会更强大,系统也会越来越完善。
系统初步规划
员工管理系统的初步构想是:
员工按表格要求填写相应的信息。
自动汇总员工所填写的信息。
查询某员工的信息。
查询某员工的信息并能够自动显示在员工信息表中,方便打印输出。
分析员工的信息,例如毕业5年的员工有多少、具备高级职称的员工有多少。
其他一些扩展功能。(暂时未想到,根据需要扩展)
表格设计
根据初步构想,先在Excel中设计两个工作表。
“员工基本信息表”:便于员工填写信息。
“员工信息数据库”:汇总员工填写的信息。
工作表初步设计如下图所示:
其中,“员工信息数据库”表实际上是将“员工基本信息表”中所填写的数据按数据库记录格式汇总到一张表中。
代码
下面的代码实现将“员工基本信息表”中填写的数据写入到“员工信息数据库”中:
Sub TotalData()
‘声明Worksheet变量
Dim wksInfo As Worksheet
Dim wksBaseInfo As Worksheet
‘给wksInfo变量赋值
Set wksInfo = ThisWorkbook.Worksheets(“员工信息数据库”)
Set wksBaseInfo = ThisWorkbook.Worksheets(“员工基本信息表”)
With wksInfo
.Range(“A2”).Value = wksBaseInfo.Range(“B2”).Value
.Range(“B2”).Value = wksBaseInfo.Range(“F2”).Value
.Range(“C2”).Value = wksBaseInfo.Range(“B3”).Value
.Range(“D2”).Value = wksBaseInfo.Range(“D3”).Value
.Range(“E2”).Value = wksBaseInfo.Range(“F3”).Value
.Range(“F2”).Value = wksBaseInfo.Range(“B4”).Value
.Range(“G2”).Value = wksBaseInfo.Range(“D4”).Value
.Range(“H2”).Value = wksBaseInfo.Range(“F4”).Value
.Range(“I2”).Value = wksBaseInfo.Range(“B5”).Value
.Range(“J2”).Value = wksBaseInfo.Range(“F5”).Value
.Range(“K2”).Value = wksBaseInfo.Range(“B6”).Value
.Range(“L2”).Value = wksBaseInfo.Range(“D6”).Value
.Range(“M2”).Value = wksBaseInfo.Range(“F6”).Value
.Range(“N2”).Value = wksBaseInfo.Range(“B7”).Value
.Range(“O2”).Value = wksBaseInfo.Range(“F7”).Value
.Range(“P2”).Value = wksBaseInfo.Range(“B8”).Value
.Range(“Q2”).Value =wksBaseInfo.Range(“D8”).Value
.Range(“R2”).Value = wksBaseInfo.Range(“F8”).Value
.Range(“S2”).Value = wksBaseInfo.Range(“B9”).Value
.Range(“T2”).Value = wksBaseInfo.Range(“D9”).Value
.Range(“U2”).Value = wksBaseInfo.Range(“F9”).Value
.Range(“V2”).Value = wksBaseInfo.Range(“B10”).Value
.Range(“W2”).Value = wksBaseInfo.Range(“B11”).Value
.Range(“X2”).Value = wksBaseInfo.Range(“B12”).Value
End With
End Sub
代码很简单,用到的都是前面我们学到的知识。在”员工基本信息表”中填写相应的数据,运行上面的代码,可以看到数据会自动填充到”员工信息数据库”的第二行中。
这里的代码只是机械地将一个表中的数据复制到另一个表中相应的单元格,并且只能实现填充固定一行的数据。
接下来,我们边进一步学习,边完善我们的系统,使系统逐渐灵活方便起来。