Giúp đỡ về macro chạy không ổn định khi coppy từ file này sang file khác

Liên hệ QC
Nếu bạn làm như tôi nói mà giải quyết được vấn đề thì mới nói, chứ giờ tôi không hiểu bạn bổ sung cái gì?!
- Dạ ý em là với code macro này đã đáp ứng được mong muốn của em là: khi nhập dữ liệu vào cột F4:F100 thì cell A4:E1000 sẽ unlock, còn không thì ngược lại. Nhưng bây giờ em đang gặp vấn đề khi A4:E1000 unlock em nhập dữ liệu nhưng không chỉnh sửa được size, font chữ, hay các chức năng khác mặc dù lúc protec sheet em đã chọn cho phép sử dụng format cell, insert row...
- Mong muốn của em là nhờ anh hỗ trợ có phướng án nào chỉnh sửa trên code này để nó đáp ứng được mong muốn chỉnh sửa size font chữ như bình thường không. Em nghĩ câu trả lời trên em không đính kèm code nên anh không rõ chỉnh sửa vào đâu nên em mới đính kèm code và file. Nếu anh hỗ trợ được code mới tốt hơn thì em cám ơn nhiều.
Mã:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F4:F1000")) Is Nothing Then
Call locked
End If
End Sub
Public Sub locked()
Dim Rng As Range, Cll As Range, Tem As Variant
ActiveSheet.Unprotect "8581"
With Sheet2
Set Rng = .Range(.[F4], .[F1000].End(xlUp))
    Tem = ""
End With
    For Each Cll In Rng
        With Cll.Offset(, -5).Resize(, 5)
            If Cll.Value = Tem Then
                .locked = True
            Else
                .locked = False
            End If
        End With
    Next
Set Rng = Nothing
ActiveSheet.Protect "8581"
End Sub
 
Tôi chỉ dẫn rồi mà bạn không có sự quan tâm thích đáng để làm.

Đây là những gì tôi làm: ghi macro Protect Sheet và chọn 5 tùy chọn sau và mật khẩu là 8581:
1619602712185.png
và tôi được dòng code sau:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, Password:="8581"

(trong hộp thoại đó còn có nhiều tùy chọn khác, muốn cho phép làm gì khi đã protect thì chọn cái ấy)

Thay vào dòng ActiveSheet.Protect "8581" ở cuối sub locked() là vấn đề của bạn được giải quyết. Bạn thấy không, đâu có gì phức tạp!?
 
Tôi chỉ dẫn rồi mà bạn không có sự quan tâm thích đáng để làm.

Đây là những gì tôi làm: ghi macro Protect Sheet và chọn 5 tùy chọn sau và mật khẩu là 8581:
View attachment 257818
và tôi được dòng code sau:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, Password:="8581"

(trong hộp thoại đó còn có nhiều tùy chọn khác, muốn cho phép làm gì khi đã protect thì chọn cái ấy)

Thay vào dòng ActiveSheet.Protect "8581" ở cuối sub locked() là vấn đề của bạn được giải quyết. Bạn thấy không, đâu có gì phức tạp!?
Dạ, em làm được rồi em cám ơn
 
Web KT
Back
Top Bottom