Sử dụng VBA để khóa và mở khóa các sheet của bạn. Lý do là bạn muốn nhập dữ liệu vào một vài ô nhưng không muốn cho người dùng nhập vào, cũng không muốn cho xem ô đó chứa thông tin, cũng không cho chọn và chỉnh sửa. Nhưng nếu bạn khóa luôn ô đó thì mã VBA của bạn sẽ không chạy được. Để giải quyết vấn đề này thì bạn phải sử dụng một mẹo nhỏ hay chèn thêm dòng lệnh protect và unprotect.

Đoạn mã để thực hiện bảo vệ sheet.
Sub sbProtectSheet()
    ActiveSheet.Protect "password", True, True
End Sub

Đoạn mã để thực hiện bỏ bảo vệ sheet.

Sub sbUnProtectSheet()
    ActiveSheet.Unprotect "password"
End Sub

Hướng dẫn sử dụng:

1. Mở file excel
2. Ấn Alt+F11 để vào màn hình soạn thảo VBA
3. Thêm một Module trên thanh Insert
4. Sao chép đoạn mã trên và dán vào màn hình soạn thảo
5. Lưu file với đuôi xlsm
6. Ấn F5 để thực hiện

Ứng dụng:
Tại ô B2, Bạn không muốn cho người khác lựa chọn để xem kết quả và khóa các đối tượng trên màn hình. Do đó, bạn cần phải chèn thêm một đoạn mã để bỏ bảo vệ và khóa lại khi dữ liệu đã được xử lý xong.



Mã tham khảo

Sub Ketqua()
ActiveSheet.Unprotect "password"

    With Cells.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    ActiveCell.Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.149998474074526
        .PatternTintAndShade = 0
    End With
    If ActiveCell.Row = 13 + Range("b2") Then
    Range("b18") = "True"
    With Range("B18").Font
        .Color = -10477568
        .TintAndShade = 0
    End With
    Else
     With Range("b18").Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    Range("b18") = "False"
    End If
    
ActiveSheet.Protect "password", True, True
End Sub
airplanemode_active