小姐姐的問題
一個人事小姐姐找我說她平常要錄入很多人員信息,工作容易出錯,主要出現錄錯、錄重復、錄入效率低下的問題,很是苦惱,問我有沒有好的解決辦法,那么如何快速高效的錄入數據呢?
我想想了, 給她做一個模板表,如下圖所示:

Sheet2作為錄入界面,Sheet1作為新人信息表存入界面,主要有以下4點功能:
1、鼠標可選單元格主要集中在四個字段后面的單元格,輸入完一個信息后,Tab鍵直接切換到下一個信息單元格,省去點擊鼠標的麻煩,同時限定輸入的位置,不會出錯;
2、查重,在錄入的時候,檢測待錄入人員是否重復錄入,如果表1中已經存在此人,則提示已經存在,需要重新錄入;

3、限定手機號碼輸入位數,防止手機號錄入出錯,只有輸入11位數字時才能成功輸入;

4、成功錄入一個人員信息之后,清空錄入界面,方便下一個人員的錄入。
我們利用三個知識點,對這個功能進行講解。
知識點1:利用工作表保護限定輸入位置
Tab鍵小伙伴們都不陌生,按一下Tab鍵,選中單元格會自動切換到后面的一個單元格,那么如果實現Tab鍵在指定的單元格中切換呢?
第一步,按住Ctrl鍵,依次點選四個單元格,然后按下組合鍵Ctrl+1鍵,調出設置單元格界面,點擊【保護】,取消勾選【鎖定】,按【確定】按鈕完成設置;
第二步,依次點擊【審閱】——【保護工作表】,在彈出界面中取消勾選【選定鎖定單元格】。
完成以上兩步操作之后,可以發現, 再次按Tab鍵,Excel輸入框只會在四個單元格中來回切換!

知識點2:利用數據有效性限定輸入位數
緊接著限定手機號碼輸入的位數,數據驗證(數據有效性)輕松搞定!
選中手機號碼輸入單元格,依次點擊【數據】——【數據驗證】,依次選擇“文本長度”、“等于”、“11”,點擊“出錯警告”,在“出錯信息”框內輸入“請輸入11位手機號碼”,點擊“確定”,完成設置!

注意:此步應該在最開始設置,因為第一步設置了工作表保護之后,無法再對單元格進行數據有效性設置!
知識點3:利用VBA字典字數,判斷是否重復錄入
由于字典的特性,key值唯一,不可重復,我們只需要將已經存在的人員列表錄入到字典中去接著在判斷待會去員工是否存在于字典中即可;
如果存在則不錄入,如果不存在則錄入數據,并清空錄入界面,代碼如下圖所示:

方便小伙伴們復制,明細代碼如下所示:
Sub 人員錄入()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
b = Range("B3")
Dim arr()
On Error Resume Next
Set d = CreateObject("scripting.dictionary")
arr = Range(Worksheets("sheet1").Cells(2, 1), Worksheets("sheet1").Cells(a, 2))
For i = 1 To UBound(arr)
d.Add arr(i, 1), arr(i, 2)
Next
If d.exists(b) Then
MsgBox "已存在此人,從重新輸入"
Exit Sub
Else
Worksheets("sheet1").Cells(a + 1, 1) = Range("B3")
Worksheets("sheet1").Cells(a + 1, 2) = Range("D3")
Worksheets("sheet1").Cells(a + 1, 3) = Range("B5")
Worksheets("sheet1").Cells(a + 1, 4) = Range("D5")
Range("b3").ClearContents
Range("d3").ClearContents
Range("b5").ClearContents
Range("d5").ClearContents
End If
MsgBox "已完成"
End Sub
小結
此模板并非適用于任何場景,根據不同的數據錄入需求,去修改調整,重要的是學習制作的思路,思路明白了,其它的都不再是問題~
覺得有用,歡迎關注我,定期分享數據小技巧。

轉載自頭條號:Excel函數編程可視化。(侵刪)