选项卡re_protection“设置列格式”和“设置行格式”、自动过滤器的问题

Tabs re_protection issue on Format columns & Format Rows, Auto filter

提问人:Ramu 提问时间:10/10/2023 最后编辑:tallerRamu 更新时间:10/10/2023 访问量:23

问:

使用VBA重置当前文件的密码时,一旦重新保护“格式化列和格式化行,自动过滤”选项将被禁用。我们不需要所有文件的这些optons,基于要求将启用这些选项&如果我们与用户共享的密码将在该时间通过宏重置密码,则这些选项将被禁用。任何人都可以为我的查询提供解决方案。谢谢。

    Sub Main_Protect()
    
    Dim PWD As String
    Dim WB As Workbook
    Dim ws As Worksheet
    Dim rng As Range, cell As Range
    Dim sht As Worksheet
    
    
    
    
    PWD = ThisWorkbook.Sheets("Main").Range("D1").Value
    
    'If PWD = "" Then
        'PWD = InputBox("Please Enter the password")
    'End If
        
    Set WB = Application.Workbooks.Open(ThisWorkbook.Sheets("Main").Cells(13, 1))
    
          ' Loop through all sheets in the workbook
    
    LR = ThisWorkbook.Sheets("Tab").Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
    
    Set rng = ThisWorkbook.Sheets("Tab").Range("A2:A" & LR)
    
    For Each cell In rng
    If cell > 0 Then
    
         WB.Activate
        
        Set ws = WB.Sheets(cell.Value)
        ws.Protect PWD,Contents:=True, UserInterfaceOnly:=True
        
      ThisWorkbook.Sheets("Tab").Range("B" & ThisWorkbook.Sheets("Tab").Cells(Rows.Count, 2).End(xlUp).Row + 1).Value = "Yes"
      
    
        End If
    Next cell
    
    MsgBox "Done"
    WB.Save
    WB.Close
    
    
    End Sub

是否有任何选项,在以前的相同选项上启用的选项在保护后应该可用。

EXCEL Excel的,2007 VBA7

评论


答:

0赞 taller 10/10/2023 #1

要在保护工作表时启用预期功能,请相应地指定相关参数。

    ws.Protect PWD, Contents:=True, UserInterfaceOnly:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True _
        , AllowFiltering:=True

Microsoft 参考文档:

Worksheet.Protect 方法 (Excel)

评论

0赞 Ramu 10/12/2023
谢谢兄弟。我有这个想法,但我的条件是对于所有文件,不需要启用这些选项,只针对少数文件。如果我们在重置密码时应用此行,如果该文件不需要这些选项,它也将启用正确。