經(jīng)過不斷完善,我們的系統(tǒng)已經(jīng)能夠自由地將<員工基本信息表>中輸入的信息靈活地導入<員工信息數(shù)據(jù)庫>中。
現(xiàn)在,讓我們能夠查詢<員工信息數(shù)據(jù)庫>中的數(shù)據(jù),并將查詢結(jié)果自動顯示到<員工基本信息表(查詢)>中。
為此,我們建立一張與<員工基本信息表>完全相同的工作表,將其命名為<員工基本信息表(查詢)>。
現(xiàn)在的工作簿有三張表,如下圖所示。
提取員工信息
下面,我們來編寫程序。當在單元格B3中選擇某個姓名后,會調(diào)取相應(yīng)的信息自動填充<員工基本信息表(查詢)>。
程序代碼如下:
Sub FindInfo()
‘聲明Worksheet變量
Dim wksInfo As Worksheet
Dim wksBaseInfoCX As Worksheet
‘聲明變量,代表工作表中最后一行行號
Dim lLastRow As Long
‘聲明單元格對象變量
Dim rng As Range
‘給變量賦值
Set wksInfo = ThisWorkbook.Worksheets(“員工信息數(shù)據(jù)庫”)
Set wksBaseInfoCX =ThisWorkbook.Worksheets(“員工基本信息表 (查詢)”)
‘找到<員工信息數(shù)據(jù)庫>表中的最后一行
lLastRow = wksInfo.Range(“C”& Rows.Count).End(xlUp).Row
‘在<員工信息數(shù)據(jù)庫>表中找到與<員工基本信息表(查詢)>表中單元格B3(即姓名單元格)內(nèi)容相同的單元格
Set rng = wksInfo.Range(“C2:C”& lLastRow).Find(What:=wksBaseInfoCX.Range(“B3”),LookAt:=xlWhole)
‘如果找到,則填充<員工基本信息表(查詢)>表
With wksBaseInfoCX
‘如果單元格B3中有值,且在<員工信息數(shù)據(jù)庫>中已要找該值
If (.Range(“B3”).Value<> “”) And (Not rng Is Nothing) Then
.Range(“B2”).Value =rng.Offset(0, -2).Value
.Range(“F2”).Value =rng.Offset(0, -1).Value
.Range(“D3”).Value = rng.Offset(0,1).Value
.Range(“F3”).Value =rng.Offset(0, 2).Value
.Range(“B4”).Value =rng.Offset(0, 3).Value
.Range(“D4”).Value =rng.Offset(0, 4).Value
.Range(“F4”).Value =rng.Offset(0, 5).Value
.Range(“B5”).Value =rng.Offset(0, 6).Value
.Range(“F5”).Value =rng.Offset(0, 7).Value
.Range(“B6”).Value =rng.Offset(0, 8).Value
.Range(“D6”).Value =rng.Offset(0, 9).Value
.Range(“F6”).Value =rng.Offset(0, 10).Value
.Range(“B7”).Value =rng.Offset(0, 11).Value
.Range(“F7”).Value =rng.Offset(0, 12).Value
.Range(“B8”).Value =rng.Offset(0, 13).Value
.Range(“D8”).Value =rng.Offset(0, 14).Value
.Range(“F8”).Value =rng.Offset(0, 15).Value
.Range(“B9”).Value =rng.Offset(0, 16).Value
.Range(“D9”).Value =rng.Offset(0, 17).Value
.Range(“F9”).Value =rng.Offset(0, 18).Value
.Range(“B10”).Value =rng.Offset(0, 19).Value
.Range(“B11”).Value =rng.Offset(0, 20).Value
.Range(“B12”).Value =rng.Offset(0, 21).Value
Else
MsgBox “請選擇姓名!”
End If
End With
End Sub
在<員工基本信息表(查詢)>工作表單元格B3的下拉列表中選擇姓名,然后運行上面的程序,將自動查找該姓名的相關(guān)信息并填充表格。
注:當我們學習了工作表事件后,可以在事件中調(diào)用上面的代碼,當單元格B3中的內(nèi)容改變量,觸發(fā)相應(yīng)的事件,并自動運行上述代碼,而無需手動運行上面的代碼。