У меня есть такой марос:
Sub DEL_All()
If InputBox("Вы желаете очистить все таблицы, на всех листах, от данных?" & vbCrLf & "ВНИМАНИЕ! Обратить изменение невозможно!" & vbCrLf & "Для подтверждения введите: 0", "Защита от случайных нажатий") <> "0" Then Exit Sub
Sheets("Лист1").Range("D18:R21,T18:AI21,AR18:AS21") = Empty
Sheets("Лист1").Range("D23:R38,T23:AI38,AR23:AS38") = Empty
Sheets("Лист2").Range("D13:R20,T13:AI20,AR13:AS20") = Empty
Sheets("Лист2").Range("D36:R39,T36:AI39,R36:AS39") = Empty
Sheets("Лист3").Range("D14:R81,T14:AI81,AR14:AS81") = Empty
Sheets("Лист4").Range("D13:R52,T13:AI52,AR13:AS52") = Empty
Sheets("Лист5").Range("D13:R52,T13:AI52,AR13:AS52") = Empty
Sheets("Лист6").Range("D18:R27,T18:AI27") = Empty
Sheets("Лист6").Range("D31:R38,T31:AI38") = Empty
Sheets("Лист6").Range("D42:R101,T42:AI101") = Empty
Sheets("Лист6").Range("D105:R154,T105:AI154") = Empty
Sheets("Лист6").Range("D158:R197,T158:AI197") = Empty
End Sub
И вот проблема. Раньше этот макрос всем устраивал, но в последнее время в объединённых ячейках(в диапазонах AR:AS), по не понятным мне причинам, ода из ячеек становится защищённой (при защищённом паролем листе)[т.е. если снять защиту и смотреть свойства ячейки(объединённой), то во вкладке защита будет квадратик]. И этот макрос натыкаясь на такую ячейку выдаёт ошибку(мол, снимите защиту сперва).
Вопрос: как сделать так, чтобы макрос сначала снимал парольную защиту, на тех листах, где она есть, потом очищал, потом снова ставил её на теже листы.
Я подумал и другом решении. Может проще сделать так, чтобы перед очисткой, макрос снимал фалжки(Selection.Locked = False) в ячейках очищаемых диапазонов. Но как это сделать не знаю.
Помогите!
Sub DEL_All()
If InputBox("Вы желаете очистить все таблицы, на всех листах, от данных?" & vbCrLf & "ВНИМАНИЕ! Обратить изменение невозможно!" & vbCrLf & "Для подтверждения введите: 0", "Защита от случайных нажатий") <> "0" Then Exit Sub
Sheets("Лист1").Range("D18:R21,T18:AI21,AR18:AS21") = Empty
Sheets("Лист1").Range("D23:R38,T23:AI38,AR23:AS38") = Empty
Sheets("Лист2").Range("D13:R20,T13:AI20,AR13:AS20") = Empty
Sheets("Лист2").Range("D36:R39,T36:AI39,R36:AS39") = Empty
Sheets("Лист3").Range("D14:R81,T14:AI81,AR14:AS81") = Empty
Sheets("Лист4").Range("D13:R52,T13:AI52,AR13:AS52") = Empty
Sheets("Лист5").Range("D13:R52,T13:AI52,AR13:AS52") = Empty
Sheets("Лист6").Range("D18:R27,T18:AI27") = Empty
Sheets("Лист6").Range("D31:R38,T31:AI38") = Empty
Sheets("Лист6").Range("D42:R101,T42:AI101") = Empty
Sheets("Лист6").Range("D105:R154,T105:AI154") = Empty
Sheets("Лист6").Range("D158:R197,T158:AI197") = Empty
End Sub
И вот проблема. Раньше этот макрос всем устраивал, но в последнее время в объединённых ячейках(в диапазонах AR:AS), по не понятным мне причинам, ода из ячеек становится защищённой (при защищённом паролем листе)[т.е. если снять защиту и смотреть свойства ячейки(объединённой), то во вкладке защита будет квадратик]. И этот макрос натыкаясь на такую ячейку выдаёт ошибку(мол, снимите защиту сперва).
Вопрос: как сделать так, чтобы макрос сначала снимал парольную защиту, на тех листах, где она есть, потом очищал, потом снова ставил её на теже листы.
Я подумал и другом решении. Может проще сделать так, чтобы перед очисткой, макрос снимал фалжки(Selection.Locked = False) в ячейках очищаемых диапазонов. Но как это сделать не знаю.
Помогите!