Mình tạo bảo vệ sheet nhưng chạy macro bị báo lỗi. Các bạn giúp mình với. Password là 123. File đính kèm bên dưới.
Cảm ơn các bạn nhiều!
Sub LocDL()
With Sheet1
.Unprotect "123"
.[A1].CurrentRegion.AdvancedFilter xlFilterCopy, [D1:D2], [F1:G1], True
.Protect "123"
End With
End Sub
Đi sinh nhật chứ đi đâu trời...Mấy hôm nay cao thủ đi đâu hết rồi?
Xem lại thuộc tính Locked của cell E49 sẽ thấy (E1:E48 không lock còn E49 thì đang lock)Đánh vật mãi mình cũng tự thiết kế được đoạn code lọc dữ liệu. Mình không hiểu gì về VBA cả, chỉ dùng tính năng ghi Macro tự động, sau đó ghép lại với nhau. Các bạn xem giúp mình làm có đúng không nhé. Ý mình là: lọc danh sách mã sản phẩm duy nhất, sau đó Sort theo thứ tự từ nhỏ đến lớn, các sheet được bảo vệ để tránh làm hỏng công thức nhưng vẫn dùng được AutoFil (Pass = "123456"). Ngoài ra mình không hiểu tại sao riêng ô E49 cứ lọc xong là bị khoá?
Mình đã Unlock cell E49 rồi nhưng cứ chạy Macro xong thì nó lại tự động khoá (riêng cell E49 thôi), mình không hiểu code sai chỗ nào?Xem lại thuộc tính Locked của cell E49 sẽ thấy (E1:E48 không lock còn E49 thì đang lock)
Mình đã Unlock cell E49 rồi nhưng cứ chạy Macro xong thì nó lại tự động khoá (riêng cell E49 thôi), mình không hiểu code sai chỗ nào?
Mình Unlock hết cột E, sau khi lọc các cell từ E50 trở đi lại bị khoá. Thôi, tạm bằng lòng thế vậy. Dù sao cũng cảm ơn bạn!Ít nhất cũng phải Unlock từ E1 đến E378 mới có tác dụng (chắc ăn thì cứ Unlock hết cột E đi)
Cũng dễ thôi mà. Bạn Unlock bằng code là được rồiMình Unlock hết cột E, sau khi lọc các cell từ E50 trở đi lại bị khoá. Thôi, tạm bằng lòng thế vậy. Dù sao cũng cảm ơn bạn!
Bạn thay code này vào chắc là đáp ứng được yêu cầu của bạn đấy
Sub Button1_Click()
Application.ScreenUpdating = False
ActiveSheet.Unprotect 123456
Range([a1], [A65536].End(3)).AdvancedFilter 2, , [E1], 2
Range([E1], [E65536].End(3)).Sort key1:=[E1], header:=1
Range([E1], [E65536].End(3)).AutoFilter
ActiveSheet.Protect 123456, AllowFiltering:=True
Application.ScreenUpdating = True
End Sub
Ý người ta thắc mắc là mấy cell phía dười của cột E bị lock sau khi chạy code đấy (tức chạy code xong, mấy cell trống dưới cột E không nhập liệu được)
Ví thế ta có 2 cách:
- Một là Unlock bằng tay
- Hai là Unlock bằng code
Tôi thấy unlock bằng code sẽ chủ động hơn