Khóa ô, cột và hàng trong Excel cho bạn tự do bảo vệ dữ liệu. Sau khi bảo vệ bảng tính, theo mặc định, mọi ô đều bị khóa. Điều đó có nghĩa là chúng không thể chỉnh sửa. Nhưng bảo vệ các ô khác nhau cho bạn tự do làm việc trên các ô không được bảo vệ. Ở đây, bạn sẽ thấy các kỹ thuật Excel khác nhau để khóa và mở khóa ô. Có nhiều Hàm Excel mặc định mà chúng ta có thể dùng để tạo công thức. Lại, khóa ô sẽ không có tác dụng nếu bạn không bảo vệ bảng tính. Bài viết này sẽ chỉ cho bạn 6 ví dụ lý tưởng để Khóa và Mở khóa Ô trong Excel Sử Dụng VBA.
Tải xuống sổ làm việc sau để tự thực hành.
6 ví dụ lý tưởng để Khóa và Mở khóa Ô trong Excel Sử Dụng VBA
Excel VBA có thể thực hiện nhiều nhiệm vụ phức tạp rất dễ dàng. Bạn chỉ cần nhập một mã hoặc viết một mã. Trong bài viết này, chúng ta sẽ áp dụng VBA để Khóa và Mở khóa Ô trong Excel. Để minh họa, chúng ta sẽ dùng một tập dữ liệu mẫu. Ví dụ, tập dữ liệu sau chứa Nhân viên bán hàng, Sản phẩm và Doanh thu thuần trong phạm vi ô B4:D10. Ở đây, chúng ta sẽ khóa các phạm vi ô khác nhau.

1. Khóa tất cả ô trong bảng tính Excel với VBA
Trong ví dụ đầu tiên, bạn sẽ thấy cách khóa tất cả ô trong một bảng tính Excel. Do đó, làm theo các bước dưới đây để thực hiện nhiệm vụ.
CÁC BƯỚC:
- Trước hết, vào Developer ➤ Visual Basic.

- Kết quả, cửa sổ VBA sẽ bật ra.
- Giờ, chọn Insert ➤ Module.

- Kết quả, hộp thoại Module sẽ xuất hiện.
- Tiếp theo, sao chép mã dưới đây và dán vào hộp Module.
Sub AllCells()
Sheets("All Cells").Cells.Locked = True
Sheets("All Cells").Protect
End Sub

- Lưu tệp và nhấn phím F5 để chạy mã.
- Do đó, khi bạn cố gắng chỉnh sửa hoặc sửa đổi bất kỳ ô nào, bạn sẽ nhận được hộp thoại cảnh báo như hình dưới.

2. Áp dụng Excel VBA để khóa ô cụ thể
Giờ, chúng ta sẽ chỉ mã để khóa ô cụ thể. Chúng ta cũng sẽ chèn một hộp kiểm (check box) sẽ kiểm soát việc khóa và mở khóa. Vì vậy, hãy học các bước sau để thực hiện thao tác.
CÁC BƯỚC:
- Trước tiên, đặt tên phạm vi ô B4:D10 là Table1.

- Tiếp theo, nhấp Developer ➤ Insert ➤ Check Box (Hộp kiểm).

- Sau đó, đặt hộp kiểm ở nơi bạn muốn.
- Sau đó, nhấp chuột phải vào tên trang tính.
- Chọn View Code (Xem mã) từ menu ngữ cảnh.

- Nhập mã dưới đây vào hộp thoại bật ra.
Private Sub CheckBox1_Click()
Range("Table1").Select
On Error Resume Next
If CheckBox1.Value = True Then
Selection.Locked = False
MsgBox Selection.Address & " Cell Range is Unlocked", vbInformation, "ExcelDemy"
Else
Selection.Locked = True
MsgBox Selection.Address & " Cell Range is Locked", vbInformation, "ExcelDemy"
End If
End Sub

- Lưu tệp và chạy mã bằng cách nhấn phím F5.
- Vậy, tích vào hộp sẽ mở khóa các ô và trả về hộp thoại như minh họa dưới.

- Tương tự, bỏ tích hộp sẽ khóa các ô.

3. Chỉ khóa ô có công thức bằng VBA
Tuy nhiên, chúng ta có thể khóa chỉ các ô có công thức. Do đó, làm theo quy trình để khóa ô có công thức.
CÁC BƯỚC:
- Đầu tiên, lấy hộp Module bằng cách làm theo các bước trong ví dụ 1.
- Nhập mã dưới đây vào hộp.
Sub LockCellsWithFormulas()
For Each Rng In ActiveSheet.Range("B5:D10")
If Rng.HasFormula Then
Rng.Locked = True
Else
Rng.Locked = False
End If
Next Rng
ActiveSheet.Protect "111"
End Sub

- Sau đó, nhấp vào nút RunSub để chạy mã.
- Ở đây, chúng ta thấy mã này sẽ khóa ô nơi chúng ta nhập công thức.
- Ví dụ, D7 có công thức. Vì vậy, chúng ta không thể chỉnh sửa ô này.

4. Khóa toàn bộ bảng tính trừ một vài ô
Hơn nữa, chúng ta có thể khóa toàn bộ bảng tính trừ một vài ô mà chúng ta sẽ chỉ định. Nhìn vào mã dưới đây, B5:D10 là phạm vi chúng ta muốn giữ mở khóa. Ngoài phạm vi này, toàn bộ bảng tính sẽ bị khóa sau khi chạy mã.
Sub WorksheetExceptFewCells()
Dim wb As Workbook
Set wb = ActiveWorkbook
wb.Sheets("Entire Worksheet Except Few").Range("B5:D10").Locked = False
wb.Sheets("Entire Worksheet Except Few").Protect passowrd = "111"
End Sub

5. Khóa ô sau khi nhập dữ liệu trong Excel
Lại, cần thiết phải khóa ô sau khi nhập dữ liệu trong phạm vi mong muốn. Trong ví dụ này, B4:D10 là phạm vi chúng ta sẽ nhập dữ liệu. Do đó, làm theo các bước dưới đây để khóa ô sau khi nhập dữ liệu trong Excel.
CÁC BƯỚC:
- Trước tiên, nhấp chuột phải vào tên trang tính và chọn View Code.
- Nhập mã sau vào hộp thoại.
Dim rg As Range
Dim str As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("B4:D10"), Target) Is Nothing Then
Set rg = Target.Item(1)
str = rg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xg As Range
On Error Resume Next
Set xg = Intersect(Range("B4:D10"), Target)
If xg Is Nothing Then
Exit Sub
End If
Target.Worksheet.Unprotect Password:="111"
If xg.Value <> str Then
xg.Locked = True
Target.Worksheet.Protect Password:="111"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("B4:D10"), Target) Is Nothing Then
Set rg = Target.Item(1)
str = rg.Value
End If
End Sub

- Chạy mã bằng cách nhấn nút RunSub hoặc phím F5.
- Sau đó, nhập giá trị dữ liệu của bạn trong phạm vi.
- Nó sẽ tự động bị khóa.
- Nếu bạn cố gắng chỉnh sửa, bạn sẽ nhận được hộp thoại cảnh báo như hình dưới.

6. Mở khóa ô trong Excel Sử Dụng VBA
Cho đến nay, chúng ta đã giải thích cách khóa ô. Giờ, bạn có thể dùng mã dưới đây để mở khóa ô trong sổ làm việc Excel.
Sub UnlockCells()
Sheets("Unlock Cells").Cells.Locked = False
Sheets("Unlock Cells").Unprotect
End Sub

Cách Khóa và Mở khóa Ô trong Excel Không Dùng VBA
Bạn cũng có thể khóa và mở khóa ô mà không dùng VBA. Chúng ta có thể dùng hộp thoại Format Cells (Định dạng ô) để khóa/mở khóa ô. Bạn phải tích vào ô Locked (Khóa) nếu muốn khóa ô. Tương tự, để mở khóa ô, bỏ tích ô đó sẽ làm được. Lại, khóa ô của bạn sẽ không có tác dụng nếu bạn không bảo vệ bảng tính hoặc sổ làm việc.
CÁC BƯỚC:
- Trước hết, chọn phạm vi mong muốn.
- Sau đó, nhấn phím Ctrl và 1 cùng lúc.
- Nó sẽ trả về hộp thoại Format Cells.
- Dưới tab Protection (Bảo vệ), tích/bỏ tích ô Locked tùy theo nhu cầu.

- Nếu bạn cần bảo vệ bảng tính, vào tab Review (Xem xét).
- Ở đó, chọn Protect Sheet (Bảo vệ trang tính) từ menu thả xuống Protect.
- Vậy, trang tính sẽ được bảo vệ.

Kết luận
Do đó, bạn sẽ có thể Khóa và Mở khóa Ô trong Excel Sử Dụng VBA theo các ví dụ mô tả ở trên. Khóa một số ô cụ thể trong Excel cho bạn tự do bảo mật dữ liệu khỏi người khác. Nó giúp ngăn chặn xóa vô tình hoặc ngăn người khác phá hoại dữ liệu của bạn. Hãy tiếp tục sử dụng chúng và cho chúng tôi biết nếu bạn có thêm cách làm nhiệm vụ này. Theo dõi trang web ExcelDemy để có thêm bài viết như thế này. Đừng quên thả bình luận, gợi ý hoặc thắc mắc nếu bạn có trong phần bình luận dưới đây.