Khóa 1 vùng cố định cho toàn bộ sheet

Liên hệ QC

Thanh Bình PV

Thành viên hoạt động
Tham gia
30/10/19
Bài viết
151
Được thích
19
Em chào mọi người,

Em đang viết 1 code để khóa 1 vùng nhất định cho toàn bộ sheet.
Hiện tại em viết thì phải kích hoạt từng Worksheet, bỏ khóa toàn bộ sau đó chọn vùng cần khóa để khóa ô lại.

Ví dụ: em đang làm việc ở sheet2 (sheet đang làm việc), khi chạy code thì sẽ kích hoạt ở sheet cuối cùng không còn ở sheet đang làm việc nữa. Và sẽ có tình trạng là tất cả sheet đều chọn 1 vùng (trong code là vùng A1:H500).

Em muốn khi chạy code thì mình đang làm việc ở sheet nào sẽ ở sheet đó và các sheet giữ nguyên ô mình đã chọn trước đó.

Em cảm ơn.
Mã:
Sub protect_all_sheet()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    With ws
        .Activate
        .Cells.Locked = False
        .Range("A1:H500").Select
        Selection.Locked = True
        Selection.FormulaHidden = True
    End With
    ws.Protect Password:="123"
Next
End Sub
 
Em chào mọi người,

Em đang viết 1 code để khóa 1 vùng nhất định cho toàn bộ sheet.
Hiện tại em viết thì phải kích hoạt từng Worksheet, bỏ khóa toàn bộ sau đó chọn vùng cần khóa để khóa ô lại.

Ví dụ: em đang làm việc ở sheet2 (sheet đang làm việc), khi chạy code thì sẽ kích hoạt ở sheet cuối cùng không còn ở sheet đang làm việc nữa. Và sẽ có tình trạng là tất cả sheet đều chọn 1 vùng (trong code là vùng A1:H500).

Em muốn khi chạy code thì mình đang làm việc ở sheet nào sẽ ở sheet đó và các sheet giữ nguyên ô mình đã chọn trước đó.

Em cảm ơn.
Mã:
Sub protect_all_sheet()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    With ws
        .Activate
        .Cells.Locked = False
        .Range("A1:H500").Select
        Selection.Locked = True
        Selection.FormulaHidden = True
    End With
    ws.Protect Password:="123"
Next
End Sub
Thử sửa lại thế này xem.
Mã:
Sub protect_all_sheet()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    With ws
        .Cells.Locked = False
        .Range("A1:H500").Locked = True
        .Range("A1:H500").FormulaHidden = True
    End With
    ws.Protect Password:="123"
Next
End Sub
 
Upvote 0
Thử sửa lại thế này xem.
Mã:
Sub protect_all_sheet()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    With ws
        .Cells.Locked = False
        .Range("A1:H500").Locked = True
        .Range("A1:H500").FormulaHidden = True
    End With
    ws.Protect Password:="123"
Next
End Sub
Em cảm ơn. Chả hiểu sao hôm qua em cũng làm như vậy nhưng có 1 sheet không bị khóa.. Nay em làm lại thì khóa được hết.. :(:(:(
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom