Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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àm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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àm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

  • 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ệ.

Làm chủ Excel VBA: Bảo mật dữ liệu bằng cách khóa và mở khóa ô hiệu quả

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.