允许受保护工作表中的VBA代码

时间:2015-08-11 13:58:12

标签: vba excel-vba excel

我录制了以下隐藏/取消隐藏行的VBA代码,然后在workheet_Activate事件上排序,立即:)。只需一件事,工作表需要受到保护,并且此代码拒绝在受保护的工作表中执行,并收到此错误消息:

  

"运行时错误1004"您不能在受保护的情况下使用此命令   片..."

您能告诉我们如何保护工作表并同时允许此代码吗?

Sub HIDESORT()
    ActiveSheet.Range("$A$10:$K$500").AutoFilter Field:=7, Criteria1:=">0", _
        Operator:=xlAnd
    ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort. _
        SortFields.Add Key:=Range("G10:G500"), SortOn:=xlSortOnValues, Order:= _
        xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Control Implementation Plan").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

2 个答案:

答案 0 :(得分:1)

ActiveSheet.Protect UserInterfaceOnly:=True

答案 1 :(得分:0)

当您保护工作表时,您可以通过选中复选框allow format columns来允许用户隐藏/取消隐藏单元格。尝试将此细分添加到您的代码中

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True