Computer >> Máy Tính >  >> Phần mềm >> Office

Cách khóa và mở khóa ô trong Excel bằng VBA

Khóa các ô, cột và hàng trong excel cho phép bạn tự do bảo vệ dữ liệu của mình. Sau khi bảo vệ một trang tính, theo mặc định, mọi ô đều bị khóa. Nó có nghĩa là chúng không thể được chỉnh sửa. Nhưng việc bảo vệ các tế bào khác nhau cho phép bạn tự do làm việc trên các tế bào không được bảo vệ. Tại đâ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ể sử dụng để tạo công thức. Một lần nữa, việc khóa ô sẽ không ảnh hưởng gì nếu bạn không bảo vệ trang tính. Bài viết này sẽ cho bạn thấy 6 ví dụ lý tưởng để Khóa và mở khóa ô trong Excel Sử dụng VBA .

Tải xuống sách bài tập sau để tự thực hành.

6 Ví dụ Lý tưởng để Khóa và Mở khóa Ô trong Excel Bằ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 sẽ chỉ cần nhập mã hoặc viết mã. Trong bài viết này, chúng tôi sẽ áp dụng VBA vào Khóa Mở khóa ô trong Excel . Để minh họa, chúng tôi sẽ sử dụng tập dữ liệu mẫu. Ví dụ:tập dữ liệu sau chứa Người bán hàng , Sản phẩm Doanh số ròng trong phạm vi ô B4:D10 . Tại đây, chúng tôi sẽ khóa các phạm vi ô khác nhau.

Cách khóa và mở khóa ô trong Excel bằng VBA

1. Khóa tất cả các ô trong trang tính Excel bằng VBA

Trong ví dụ đầu tiên của chúng tôi, bạn sẽ thấy cách khóa tất cả các ô trong một trang tính excel. Do đó, hãy làm theo các bước bên dưới để thực hiện tác vụ.

CÁC BƯỚC:

  • Trước hết, hãy chuyển đến Nhà phát triển ➤ Visual Basic .

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Do đó, VBA cửa sổ sẽ bật ra.
  • Bây giờ, chọn Chèn ➤ Mô-đun .

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Do đó, Mô-đun hộp thoại sẽ xuất hiện.
  • Tiếp theo, sao chép mã bên dưới và dán vào hộp Mô-đun.
Sub AllCells()
Sheets("All Cells").Cells.Locked = True
Sheets("All Cells").Protect
End Sub

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Lưu tệp và nhấn 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 bên dưới.

Cách khóa và mở khóa ô trong Excel bằng VBA

2. Áp dụng Excel VBA để khóa các ô cụ thể

Bây giờ, chúng tôi sẽ hiển thị mã để khóa các ô cụ thể. Chúng tôi cũng sẽ chèn một hộp kiểm sẽ kiểm soát việc khóa và mở khóa. Vì vậy, hãy tìm hiểu các bước sau để thực hiện thao tác.

CÁC BƯỚC:

  • Đầu tiên, đặt tên cho dải ô là B4:D10 dưới dạng Table1 .

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Tiếp theo, nhấp vào Nhà phát triển ➤ Chèn ➤ Hộp kiểm .

Cách khóa và mở khóa ô trong Excel bằng VBA

  • 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 Xem mã từ menu ngữ cảnh.

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Nhập mã bên dưới 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

Cách khóa và mở khóa ô trong Excel bằng VBA

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

Cách khóa và mở khóa ô trong Excel bằng VBA

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

Cách khóa và mở khóa ô trong Excel bằng VBA

3. Chỉ khóa các ô có công thức bằng VBA

Tuy nhiên, chúng ta chỉ có thể khóa các ô có công thức. Do đó, hãy làm theo quy trình để khóa các ô bằng một công thức.

CÁC BƯỚC:

  • Trước tiên, hãy tải Mô-đun bằng cách làm theo các bước trong ví dụ 1 .
  • Nhập mã bên dưới 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

Cách khóa và mở khóa ô trong Excel bằng VBA

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

Cách khóa và mở khóa ô trong Excel bằng VBA

4. Khóa toàn bộ trang tính ngoại trừ một vài ô

Hơn nữa, chúng tôi có thể khóa toàn bộ trang tính ngoại trừ một vài ô mà chúng tôi sẽ chỉ định. Nhìn vào mã bên dưới, nơi B5:D10 là phạm vi chúng tôi muốn tiếp tục mở khóa. Ngoài phạm vi này, toàn bộ trang 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

Cách khóa và mở khóa ô trong Excel bằng VBA

5. Khóa ô sau khi nhập dữ liệu trong Excel

Một lần nữa, cần phải khóa các ô sau khi nhập dữ liệu vào phạm vi mong muốn. Trong ví dụ này, B4:D10 là phạm vi mà chúng tôi sẽ nhập dữ liệu. Do đó, hãy 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 Xem mã .
  • 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
    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

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Chạy mã bằng cách nhấn RunSub hoặc phím F5.
  • Sau đó, hãy nhập các giá trị dữ liệu của bạn vào dải ô.
  • 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 bên dưới.

Cách khóa và mở khóa ô trong Excel bằng VBA

6. Mở khóa các ô trong Excel bằng VBA

Cho đến nay, chúng tôi đã giải thích cách khóa các ô. Bây giờ, bạn có thể sử dụng mã bên dưới để mở khóa các ô 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 bằng VBA

Cách khóa và mở khóa ô trong Excel mà không cần VBA

Bạn cũng có thể khóa và mở khóa các ô mà không cần sử dụng VBA . Chúng tôi có thể sử dụng Định dạng ô hộp thoại để khóa / mở khóa ô. Bạn phải chọn hộp cho Đã khóa nếu bạn muốn khóa các ô. Tương tự, để mở khóa các ô, việc bỏ chọn ô sẽ được thực hiện. Một lần nữa, việc khóa các ô của bạn sẽ không ảnh hưởng gì nếu bạn không bảo vệ trang tính hoặc sổ làm việc của mình.

CÁC BƯỚC:

  • Trước hết, hãy chọn phạm vi mong muốn của bạn.
  • Sau đó, nhấn Ctrl 1 các phím với nhau.
  • Nó sẽ trả về Định dạng ô hộp thoại.
  • Dưới Bảo vệ , chọn / bỏ chọn tab Đã khóa tùy theo nhu cầu của bạn.

Cách khóa và mở khóa ô trong Excel bằng VBA

  • Nếu bạn cần bảo vệ trang tính, hãy chuyển đến tab Xem lại.
  • Tại đó, chọn Bảo vệ Trang tính khỏi Bảo vệ đã thắng.
  • Do đó, trang tính sẽ được bảo vệ.

Cách khóa và mở khóa ô trong Excel bằng VBA

Kết luận

Từ đó, bạn sẽ có thể Khóa và mở khóa ô trong Excel Sử dụng VBA theo các ví dụ được mô tả ở trên. Khóa các ô nhất định trong excel cho phép bạn tự do bảo mật dữ liệu của mình khỏi người khác. Nó giúp bạn ngăn chặn việc vô tình xóa hoặc ngăn người khác phá hỏng dữ liệu của bạn. 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 để thực hiện nhiệm vụ. Làm theo ExcelDemy trang web cho nhiều bài viết như thế này. Đừng quên để lại nhận xét, đề xuất hoặc truy vấn nếu bạn có bất kỳ câu hỏi nào trong phần bình luận bên dưới.