Питеру регулярно нужно копировать основной рабочий лист в копию в новой книге. Он отлично справляется с этим с помощью VBA. Однако с листом, который он копирует, связан код, и этот код тоже копируется.

Питеру не нужен код в копии, но он хочет, чтобы он остался в оригинале. Он задается вопросом, есть ли в его макросе способ удалить код листа из только что скопированного листа.

Как вы это сделаете, зависит от того, как вы хотите, чтобы готовая книга (та, в которую вы копируете) выглядела. В первую очередь, будет ли готовая книга содержать макросы — какие-либо макросы — или нет? Если ответ отрицательный, он не будет содержать никаких макросов, тогда вы можете легко выполнить задачу, сохранив новую книгу в формате XLSX. Таким образом, Excel позаботится о том, чтобы избавиться от всех макросов за вас. Вы можете сделать это, включив в свой код строку, подобную следующей при сохранении книги:

ActiveWorkbook.SaveAs FileName:="MyExcelFile.xlsx", _   FileFormat:=xlOpenXMLWorkbook

Однако, если вы хотите избавиться только от кода листа, но сохранить новую книгу с любым другим кодом макроса без изменений, тогда вам потребуется другой подход. В этом случае вы можете включить в свой макрос следующую строку:

ActiveWorkbook.VBProject.VBComponents("Sheet1")

Это предполагает, что новая книга является активной книгой и что лист, код которого вы хотите удалить, называется Sheet1. Вы также можете использовать эти строки для выполнения той же задачи:

wsName = ActiveSheet.CodeName With ThisWorkbook.VBProject.VBComponents(wsName).CodeModule     .DeleteLines 1, .CountOfLines End With

Обратите внимание, что wsName следует объявить как строковую переменную.

Для множества других способов программного воздействия на разные модули кода вы не ошибетесь, обратившись к превосходной информации Чипа Пирсона здесь:

http://cpearson.com/excel/vbe.aspx

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (7612) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.