Я использовал фрагмент кода, который масштабируется, чтобы соответствовать листу в активном окне. Однако, если я добавлю защиту листа, макрос завершится с ошибкой. Чтобы обойти эту проблему, я вызываю суб, чтобы удалить защиту, а затем снова применить защиту. Есть ли способ запустить мой юг, не удаляя и не повторно применяя защиту листа?Экран защиты листа листа Excel
Код для изменения масштаба:
Sub fixScreenSize()
Dim rngX As Range
Dim myLastCell As Range
Dim myLastCellAdd As String
Dim rngToZoom As Range
'Get address of last cell containing data
Set myLastCell = Cells(1, 1).SpecialCells(xlLastCell)
myLastCellAdd = Cells(myLastCell.Row, myLastCell.Column).Address
'Find keyword in used range
Set rngX = Range("A1", myLastCellAdd).Find("myZoomRange", lookat:=xlPart)
'Zoom to correct range
Range(Cells(1, 1), rngX).Select
ActiveWindow.Zoom = True
Range("A1").Select
Set myLastCell = Nothing
Set rngX = Nothing
End Sub
А я об этом не знал. Не нужно было искать его, если честно, я всегда просто защищался, а затем снова подвергался защите. Но спасибо за увеличение моих знаний :) – Sam
А, я вижу, как это работает. Я должен применять защиту для нескольких листов в нескольких книгах, я так понимаю, я могу просто поместить 'UserInterfaceOnly: = True' в мой Sub, который добавляет защиту всем листам. Спасибо :) – sticks
Да - хотя вам больше не нужно запускать этот код, идея заключается в том, что вы используете этот метод защиты один раз. Поскольку ваш код больше не будет сталкиваться с этой ошибкой, нет необходимости повторно защищать каждый раз, когда рабочая книга открывается. –