我录制了以下隐藏/取消隐藏行的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
答案 0 :(得分:1)
ActiveSheet.Protect UserInterfaceOnly:=True
答案 1 :(得分:0)
当您保护工作表时,您可以通过选中复选框allow format columns
来允许用户隐藏/取消隐藏单元格。尝试将此细分添加到您的代码中
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True