Он хорошо работал до защиты листа
Я искал похожую проблему здесь, в SO, но не решил мою проблему. Я не знаю, указано ли это c для моего кода.
У меня есть защищенный лист и все ячейки заблокированы, кроме одного диапазона, который я называю R. Я копирую содержимое из R в R2, но я необходимо снять защиту листа в первую очередь. Затем я копирую все из R в R2, затем блокирую и снова защищаю лист. Как я уже сказал во второй раз, когда я запускаю макрос, он выдает ошибку 1004 и не может понять, почему. Код работал хорошо, пока я не защищал лист все время. Вот код:
Выдает ошибку в строке, где написано
.PasteSpecial Paste:=xlPasteAll
Ошибка выполнения 1004 в методе PasteSpecial класса .Range
Sub CopyPapers(ByRef R As Range, R2 As Range)
With R2
R.Copy
Hoja1.Unprotect
.PasteSpecial Paste:=xlPasteAll
.Locked = True
Hoja1.Protect
End With
R.Cells(2, 1).Activate
Application.CutCopyMode = False
End Sub
R и R2 - диапазоны ячеек. Всякий раз, когда я обновляю содержимое в R , это содержимое и форматы копируются в R2 . Для этого я использую событие Worksheet_Change () и проверяю, изменяется ли только диапазон ( R ) с использованием метода Intersect () .
Edit: я игнорирую почему, но кажется, что перемещение R.Copy инструкция под Hoja1.Unprotect , похоже, решает проблему. Если кто-нибудь может объяснить, почему это так, я буду признателен.