Макрос поверх защищенного и общего рабочего листа Excel

У меня есть общий и защищенный список поклонников в Excel 2012. (защищенный, но без пароля) я написал этот макрос:

Private Sub CommandButton1_Click()
    ActiveSheet.Unprotect
    Range("B4:K38").Select
    Selection.Sort Key1:=Range("D4"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
   'cells I don't want to be protect (to be user-editable)
    Range("B4:K38").Locked = False
   'protecting the sheet, and all the other cells will be protected
    Protect UserInterfaceOnly:=True
End Sub

Но каждый раз, когда я использую этот макрос, у меня появляется сообщение о том, что в методе protect есть ошибка.

Что я делаю неправильно?

1 ответ

Попробуйте это, не проверял, так как на мобильном

вместо того, чтобы использовать protect userinterfaceonly:=true

    with activesheet
         .EnableSelection = xlUnlockedCells 
         .Protect UserInterfaceOnly:=True 
    End With

Также, используя UserInterfaceOnly, вам не нужно снимать защиту листа, чтобы редактировать его с помощью vba.

Другие вопросы по тегам