giangyen nói:
Các bác giúp em với.
Em muốn bảo toàn chính xác việc nhập dữ liệu nên em muốn sau khi đã nhập dữ liệu vào cell thì nó tự động khóa lại. Khi cần sửa chữa nhập lại thì yêu cầu gõ Password. Nhập lần đầu tiên thì ko cần. Rất mong các bác chỉ giáo
THIS IS GUIDLINE ONLY
Tư tưởng thôi nhé, còn ko biết Excel có làm được ko:
Dùng VBA, bắt sự kiện (events) keydown & keypress của cell -> Bắt tất cả các KeyCode của event KeyDown, KeyAsscii của event KeyPress. Nếu IsProtected = True thì cho KeyCode hay KeyAsscii = 0 hết, đồng thời show form nhập password lên. Nếu nhập pws đúng, gán IsProtected = False, rồi close form đó lại và cho phép nhập như bình thường.
1. Khai báo biến IsProtected ở Module Sheet nào mà định áp dụng
Dim IsProtected As Boolean
2. In ... Load Sheet

IsProtected = True
3. In KeyDown event (Or KeyPress event)
If KeyCode <> Các loại code cho các phím Down, Up, Home, PageUp,... Then
If IsProtected Then
KeyCode = 0 '// Trong KeyPress thì viết là KeyAsscii = 0
frmPWS.Show vbModal
End if
End If
4. In Leave Cell event (Bạn tự tìm cái sự kiện tương đương trong Excel nhé)
IsProtected = True
5. Trong Form frmPWS (1 text box có tên là txtPws, 1 label có tên là lblPws, 2 Buttons: OK and Cancel)
In OK Button Click:
If txtPws.Text = "YourPws" Then
IsProtected = False
Unload Me
Else
Msgbox "Wrong Password!", vbExclamation, "Invalid Password"
If txtPws.Enable Then txtPws.SetForcus
End if
Nói tóm lại, bạn làm như là bạn suy nghĩ về mặt Logic ấy
P/S: Nhưng mà làm gì yêu cầu đến mức đó nhỉ? Chẳng nhẽ lại protect cho từng cell?