“什么?才學了點皮毛就可以開發系統了?”我想您讀到這兒,看到本篇的題目,一定會感到非常疑惑。
如果您仔細體會了前面的小短文內容,就可以開始著手來試著做一些有趣的事情了。不錯!現在我們就嘗試用已學到的知識來逐步開發一套小系統。為何這么快就可以運用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
代碼很簡單,用到的都是前面我們學到的知識。在”員工基本信息表”中填寫相應的數據,運行上面的代碼,可以看到數據會自動填充到”員工信息數據庫”的第二行中。
這里的代碼只是機械地將一個表中的數據復制到另一個表中相應的單元格,并且只能實現填充固定一行的數據。
接下來,我們邊進一步學習,邊完善我們的系統,使系統逐漸靈活方便起來。






