Code ẩn công thức toàn bộ cell có công thức của workbook và khóa workbook

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

LuuAnh980

Thành viên thường trực
Tham gia
28/9/22
Bài viết
355
Được thích
64
Giới tính
Nữ
Em có bắt chước viết đoạn code này:
Mã:
Sub LockWorkbookAndHideFormulas()
    Dim ws As Worksheet
    Dim cell As Range
    
    Set ws = ActiveSheet
    
  
    ThisWorkbook.Protect
    
    For Each cell In ws.UsedRange.SpecialCells(xlCellTypeFormulas)
        cell.FormulaHidden = True
    Next cell
    
    MsgBox "Workbook da khoa va an cong thuc.", vbInformation
End Sub
Mà code không chạy ạ, mong các anh xem giúp.
 
Thisworkbook protect cho xuống dưới next cell
 
Upvote 0
Cám ơn anh @BuiQuangThuan để em thử ạ.
Bài đã được tự động gộp:

Code chạy nhưng vẫn hiện công thức anh @BuiQuangThuan ơi.LoiCT.png
 
Upvote 0
File của bạn @zzzsxxx01 chỉ có 1 sheet, của mình nhiều sheet khóa hết và ẩn công thức.
Mong bạn xem giúp.
 
Upvote 0
Upvote 0
File đây các anh ạ.
Mong các anh và anh @BuiQuangThuan giúp.
 

File đính kèm

  • AnCongThuc.xlsb
    69.5 KB · Đọc: 8
Lần chỉnh sửa cuối:
Upvote 0
File đây các anh ạ.
Mong các anh và anh @BuiQuangThuan giúp.
Chạy thử code dưới đây
Mã:
Option Explicit

Sub A_LockWorkbookAndHideFormulas()
Dim Ws As Worksheet
   
For Each Ws In Worksheets
    Ws.UsedRange.SpecialCells(xlCellTypeFormulas).FormulaHidden = True
    Ws.UsedRange.SpecialCells(xlCellTypeFormulas).Locked = True
    Ws.Protect
    MsgBox Ws.Name & " _ da khoa va an cong thuc.", vbInformation
Next Ws

End Sub
 
Upvote 0
Em có thử thì lỗi loixem.png
nhấn debug thì lỗi vàng ngayLoixem1.png
Mong anh @CHAOQUAY xem giúp
 
Upvote 0
Em có thử thì lỗi View attachment 298243
nhấn debug thì lỗi vàng ngayView attachment 298244
Mong anh @CHAOQUAY xem giúp
Bạn thử sửa thành như vậy xem sao:
Bài đã được tự động gộp:

Em có thử thì lỗi View attachment 298243
nhấn debug thì lỗi vàng ngayView attachment 298244
Mong anh @CHAOQUAY xem giúp
Bạn thử sửa thành như vậy xem sao
Option Explicit

Sub A_LockWorkbookAndHideFormulas()
Dim Ws As Worksheet

On Error Resume Next

For Each Ws In Worksheets
Ws.Unprotect
Ws.UsedRange.SpecialCells(xlCellTypeFormulas).FormulaHidden = True
Ws.UsedRange.SpecialCells(xlCellTypeFormulas).Locked = True
Ws.Protect
MsgBox Ws.Name & " _ da khoa va an cong thuc.", vbInformation
Next Ws

End Sub
 
Upvote 0
Em có thử thì lỗi View attachment 298243
nhấn debug thì lỗi vàng ngayView attachment 298244
Mong anh @CHAOQUAY xem giúp
Thử lại code này xem có được không? Lưu ý nếu sheet đã protect thì chổ Unprotect phải truyền đúng mật khẩu nhé
Mã:
Option Explicit
Function GetFormulas(Rng As Range) As Range
    On Error Resume Next
    Set GetFormulas = Rng.SpecialCells(xlCellTypeFormulas)
End Function
Sub A_LockWorkbookAndHideFormulas()
Dim Ws As Worksheet
Dim Rng As Range
    For Each Ws In Worksheets
        If Ws.ProtectContents Then Ws.Unprotect
        Set Rng = GetFormulas(Ws.UsedRange)
        If Not Rng Is Nothing Then
            Rng.FormulaHidden = True
            Rng.Locked = True
        End If
        Ws.Protect
    Next Ws
    MsgBox Ws.Name & " _ da khoa va an cong thuc.", vbInformation
End Sub
 
Upvote 0
Cám ơn các anh @zzzsxxx01 và anh @giaiphap đã được rồi ạ.
Nhưng cho em xin code khóa nhưng vẫn cho Lọc (Filter) ạ.
À, mà khóa xong thì mở khóa là chỉnh ws.Protect thành ws.unprotect hả các anh. (để chỉnh công thức hoặc kéo thêm công thức)
 
Lần chỉnh sửa cuối:
Upvote 0
Anh @giaiphap ơi, em có làm code để mở khóa workbook như vầy:
Mã:
Sub Unprotect()
Dim Ws As Worksheet
    For Each Ws In Worksheets
        If Ws.ProtectContents Then Ws.Unprotect "gpe"
    Next Ws
End Sub
nhưng thấy code chạy sượng sượng, mong các anh có thể chỉnh code lại cho mượt ạ.
 
Upvote 0
Đúng chức năng anh @BuiQuangThuan ơi, nhưng thấy nó duyệt qua từng sheet rỏ, giật giật
 
Upvote 0
Upvote 0
Web KT
Back
Top Bottom