“什么?才學(xué)了點皮毛就可以開發(fā)系統(tǒng)了?”我想您讀到這兒,看到本篇的題目,一定會感到非常疑惑。
如果您仔細(xì)體會了前面的小短文內(nèi)容,就可以開始著手來試著做一些有趣的事情了。不錯!現(xiàn)在我們就嘗試用已學(xué)到的知識來逐步開發(fā)一套小系統(tǒng)。為何這么快就可以運用VBA來開始實戰(zhàn)了呢?這就是Excel作為一個開發(fā)平臺的優(yōu)勢!
不過,在未開始之前,還是得聲明一點,此時編寫的代碼會很“古板”,有很多約束,實現(xiàn)的功能也有限,你會覺得完全沒有必要用VBA代碼來實現(xiàn)。但我們此刻的目的是讓您能夠體會到Excel VBA的初步魅力,以及使用VBA實現(xiàn)手動操作的方法,更重要的是讓您鞏固前一階段所學(xué)習(xí)到的知識。隨著更加深入的學(xué)習(xí),我們會逐步改善這個系統(tǒng),使用的知識和技巧也會越多,系統(tǒng)功能也會更強(qiáng)大,系統(tǒng)也會越來越完善。
系統(tǒng)初步規(guī)劃
員工管理系統(tǒng)的初步構(gòu)想是:
員工按表格要求填寫相應(yīng)的信息。
自動匯總員工所填寫的信息。
查詢某員工的信息。
查詢某員工的信息并能夠自動顯示在員工信息表中,方便打印輸出。
分析員工的信息,例如畢業(yè)5年的員工有多少、具備高級職稱的員工有多少。
其他一些擴(kuò)展功能。(暫時未想到,根據(jù)需要擴(kuò)展)
表格設(shè)計
根據(jù)初步構(gòu)想,先在Excel中設(shè)計兩個工作表。
“員工基本信息表”:便于員工填寫信息。
“員工信息數(shù)據(jù)庫”:匯總員工填寫的信息。
工作表初步設(shè)計如下圖所示:
其中,“員工信息數(shù)據(jù)庫”表實際上是將“員工基本信息表”中所填寫的數(shù)據(jù)按數(shù)據(jù)庫記錄格式匯總到一張表中。
代碼
下面的代碼實現(xiàn)將“員工基本信息表”中填寫的數(shù)據(jù)寫入到“員工信息數(shù)據(jù)庫”中:
Sub TotalData()
‘聲明Worksheet變量
Dim wksInfo As Worksheet
Dim wksBaseInfo As Worksheet
‘給wksInfo變量賦值
Set wksInfo = ThisWorkbook.Worksheets(“員工信息數(shù)據(jù)庫”)
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
代碼很簡單,用到的都是前面我們學(xué)到的知識。在”員工基本信息表”中填寫相應(yīng)的數(shù)據(jù),運行上面的代碼,可以看到數(shù)據(jù)會自動填充到”員工信息數(shù)據(jù)庫”的第二行中。
這里的代碼只是機(jī)械地將一個表中的數(shù)據(jù)復(fù)制到另一個表中相應(yīng)的單元格,并且只能實現(xiàn)填充固定一行的數(shù)據(jù)。
接下來,我們邊進(jìn)一步學(xué)習(xí),邊完善我們的系統(tǒng),使系統(tǒng)逐漸靈活方便起來。