Я записал следующий код VBA, который скрывает/скрывает строки, а затем сортирует по событию workheet_Activate, в кратчайшие сроки :). Только одна вещи, рабочий лист должен быть защищен, и этот код отказывается быть выполнен в защищенном листе и получил сообщение об ошибке:Разрешить код VBA внутри защищенного рабочего листа
«ошибка время выполнения 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
, когда вы защищаете рабочий лист вы, чтобы позволить пользователям возможность скрыть/показать клетки, установив флажок позволяет 'формат columns'. Попробуйте добавить этот сегмент к вашему коду 'ActiveSheet.Protect DrawingObjects: = True, Contents: = True, Сценарии: = True, AllowFormattingColumns: = True' – psychicebola
Отлично работает;) спасибо –