怎么用excel vba開發學生管理系統
怎么用excel vba開發學生管理系統
經過不斷完善,我們的系統已經能夠自由地將<員工基本信息表>中輸入的信息靈活地導入<員工信息數據庫>中。
現在,讓我們能夠查詢<員工信息數據庫>中的數據,并將查詢結果自動顯示到<員工基本信息表(查詢)>中。
為此,我們建立一張與<員工基本信息表>完全相同的工作表,將其命名為<員工基本信息表(查詢)>。
現在的工作簿有三張表,如下圖所示。
命名動態名稱
使用公式命名動態名稱。單擊“公式”功能區選項卡中的“定義名稱”,調出“新建名稱”對話框,將名稱命名為“姓名”,在“引用位置”輸入公式:
=OFFSET(員工信息數據庫!$C$1,1,0,COUNTA(員工信息數據庫!$C:$C)-1,1)
單擊“確定”完成名稱的定義,如下圖所示。
這樣,當在<員工信息數據庫>表中增加信息時,名稱定義的內容會自動擴展。
定義數據有效性
在<員工基本信息表(查詢)>的單元格B3(即姓名單元格)定義數據有效性。過程如下圖所示。
提取員工信息
下面,我們來編寫程序。當在單元格B3中選擇某個姓名后,會調取相應的信息自動填充<員工基本信息表(查詢)>。
程序代碼如下:
Sub FindInfo()
Dim wksInfo As Worksheet
Dim wksBaseInfoCX As Worksheet
Dim lLastRow As Long
Dim rng As Range
‘給變量賦值
Set wksInfo = ThisWorkbook.Worksheets(“員工信息數據庫”)
Set wksBaseInfoCX =ThisWorkbook.Worksheets(“員工基本信息表 (查詢)”)
‘找到<員工信息數據庫>表中的最后一行
lLastRow = wksInfo.Range(“C”& Rows.Count).End(xlUp).Row
‘在<員工信息數據庫>表中找到與<員工基本信息表(查詢)>表中單元格B3(即姓名單元格)內容相同的單元格
Set rng = wksInfo.Range(“C2:C”& lLastRow).Find(What:=wksBaseInfoCX.Range(“B3”),LookAt:=xlWhole)
‘如果找到,則填充<員工基本信息表(查詢)>表
With wksBaseInfoCX
‘如果單元格B3中有值,且在<員工信息數據庫>中已要找該值
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的下拉列表中選擇姓名,然后運行上面的程序,將自動查找該姓名的相關信息并填充表格。
注:當我們學習了工作表事件后,可以在事件中調用上面的代碼,當單元格B3中的內容改變量,觸發相應的事件,并自動運行上述代碼,而無需手動運行上面的代碼。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。