У меня есть книга с 4 листами сотрудника с течением времени. Первые 3 листа, где данные добавляются другими. На четвертом листе собраны данные. На этом 4-м листе я включил автоматический макрос сортировки, чтобы постоянно изменять порядок данных, которые у меня есть на нескольких разных таблицах. Id нравится защищать этот 4-й лист, чтобы сделать его доказательством, но я обнаружил, что всякий раз, когда я защищаю лист, формулы все еще работают, однако макрос не работает. Я знаю, что макрос работает, потому что всякий раз, когда я снимаю защиту с листа, макрос активируется снова. Мне нужно добавить что-то в свой макрос, чтобы он работал в защищенном режиме, или я просто делаю что-то не так, или это что-то, что не способно с excel 2010? Это макрос, который в настоящее время используется:Защищенный макрос Включенный рабочий лист в рабочей книге
Private Sub Worksheet_Activate()
On Error Resume Next
Range("c1").Sort Key1:=Range("c2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
On Error Resume Next
Range("k1").Sort Key1:=Range("k2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
On Error Resume Next
Range("o1").Sort Key1:=Range("o2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
On Error Resume Next
Range("s1").Sort Key1:=Range("s2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub
При защите листа, попробуйте включить «Сортировка» в списке опций (возможно, придется прокрутить вниз, чтобы увидеть его), которые появляются в диалоговом окне Protect Sheet. – tigeravatar
Вы можете снять защиту листа в своем макросе сортировки, а затем повторно защитить его в конце. BTW 'On Error Resume Next' остается в силе до тех пор, пока вы его не отмените - вам нужна только одна из этих строк ... –