Как правило, ошибка с кодом 1004 возникает при копировании листа в Майкрософт Эксель с помощью макроса и дальнейшего его перемещения в ту же самую книгу, с которой информация и была копирована. Подобные манипуляции вызывают сбой системы, и программа отказывается работать дальше.

Для того, чтобы решить эту проблему необходимо создать новую книгу. В ней мы удаляем все листы и оставляем только один. Далее, в соответствие с вашими требованиями, производим форматирование, вставляем тексты и диаграммы, и прочие необходимые данные, используя инструменты по умолчанию. После этого, на верхней панели нажимаем на меню «Файл» и выбираем там действие «Сохранить как».
В появившемся окне присваиваем имя документу с сохранением его первоначального расширения. Ниже, в выпадающем списке выбираем Шаблон *.xltх (для пакета Офис первых версий позиция будет называться «Шаблон *.xlt»). Нажимаем кнопку «Сохранить».
Для того, чтобы вставить шаблон с помощью макроса, необходимо воспользоваться таким кодом: Sheets.Add Type:=Заданный адрес\Присвоенное название документа.
Также можно решить проблему и другим способом. Просто сохраняем весь файл экселя в формате соответствующего шаблона. Новый файл создаем на основе этого же шаблона. Таким образом, пока файл не будет сохранён, команда COPY не будет провоцировать сбой системы, даже если листы будут копироваться в рамках одной книги.

Для того, чтобы решить эту проблему необходимо создать новую книгу. В ней мы удаляем все листы и оставляем только один. Далее, в соответствие с вашими требованиями, производим форматирование, вставляем тексты и диаграммы, и прочие необходимые данные, используя инструменты по умолчанию. После этого, на верхней панели нажимаем на меню «Файл» и выбираем там действие «Сохранить как».
В появившемся окне присваиваем имя документу с сохранением его первоначального расширения. Ниже, в выпадающем списке выбираем Шаблон *.xltх (для пакета Офис первых версий позиция будет называться «Шаблон *.xlt»). Нажимаем кнопку «Сохранить».
Для того, чтобы вставить шаблон с помощью макроса, необходимо воспользоваться таким кодом: Sheets.Add Type:=Заданный адрес\Присвоенное название документа.
Также можно решить проблему и другим способом. Просто сохраняем весь файл экселя в формате соответствующего шаблона. Новый файл создаем на основе этого же шаблона. Таким образом, пока файл не будет сохранён, команда COPY не будет провоцировать сбой системы, даже если листы будут копироваться в рамках одной книги.