Следующий код предназначен для блокировки ячеек, соответствующих критериям на каждом листе рабочей книги. Код отлично работает на одном листе, но когда я хочу применить к всей книге, ошибка «неспособна установить заблокированное свойство в класс диапазона».Защитить рабочие листы в цикле
Правило петли рабочей книги также верна, может ли кто-нибудь сказать мне, что вызывает ошибку?
Большое спасибо! Код, как показано ниже, и я сожалею, что я не знаю, как показать правильный формат здесь:
Sub selectnumbers()
Dim ws_count As Integer
Dim n As Integer
ws_count = ActiveWorkbook.Worksheets.Count
For n = 2 To ws_count
Dim rng As Range
Dim cell As Range
Dim i As Range
Set rng = Nothing
For Each cell In ActiveSheet.UsedRange
If IsNumeric(cell) = False Or cell.Interior.Pattern = xlLightUp Or cell = "" Then
If rng Is Nothing Then
Set rng = cell
Else
Set rng = Application.union(rng, cell)
End If
End If
End If
Next cell
If Not rng Is Nothing Then
rng.Select
End If
Selection.Locked = True
ActiveSheet.Protect Password:="ADARS", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
Next n
End Sub
Похоже, что перед 'Next cell' должно быть по крайней мере одно дополнительное' End If'. Не могли бы вы уточнить? – Jeeped
, если вы заблокируете весь лист, вам не нужно фиксировать диапазоны отдельно. – psychicebola
Блокировка ячеек и защита листа - это не одно и то же - разблокированные ячейки могут быть изменены, даже если лист защищен. –