Hạn chế VBA trong bảo vệ bảng tính

Em thấy khi bảo vệ bảng tính tránh người khác sửa chữa thì các đoạn lập trình bằng VBA sẽ không hoạt động được. Bác nào có cách bảo vệ bảng tính mà VBA vẫn chạy được thì giúp em với nhé!
 
Chạy VBA thì trong VBA phải có câu lệnh cho mở khoá -> sửa chữa bảng tính -> khoá bảng tính.
Bạn cứ làm như vậy nha
 
Sửa lần cuối:
Tùy chuyện, có khi cũng không cần mở khóa luôn!
Đầu tiên phải xem khi chạy code thì nó sẽ tác động lên những cell nào, vùng nào! Vậy ta Unlock các cell trong vùng này trước khi protect sheet
Bạn hãy xem kỹ lại code và làm theo hướng này là được
 
Cảm ơn các bác! có bác nào có ví dụ hướng dẫn không. nghĩa là mình sẽ viết câu lệnh mở khóa. sau đó hết lệnh thì mình lại khoá vào ah! ý tưởng hay nhưng em phải thử xem thế nào đã nhé!
 
Xin mời bạn thử với cặp macro sau:

Cảm ơn các bác! có bác nào có ví dụ hướng dẫn không. nghĩa là mình sẽ viết câu lệnh mở khóa. sau đó hết lệnh thì mình lại khoá vào ah! ý tưởng hay nhưng em phải thử xem thế nào đã nhé!
Option Explicit
Sub KhoaCot_C()
Columns("C:C").Select
ActiveSheet.Protect Password:="VHong"
End Sub

' * * * * * * * ** * * * *

Sub DeNhapDGiaMoi()

Columns("C:C").Select
ActiveSheet.Unprotect Password:="VHong"
End Sub

Hướng dẫn thêm chút xíu:
Bạn gán cho mỗi macro 1 tổ hợp phím để gọi nó chạy;
Sau đó thử đụng vô bất kỳ ô nào của cột 'C' sẽ thấy macro làm việc như thế nào
* Bạn có thể cho macro thứ nhất chạy; Xong ra trang tính hiện hành & thử thao tác mở mật khẩu bằng tay xem sao?
* . . . . .:biggthump
 
Back
Top