Удаление кода VBA из скопированного листа (Microsoft Excel)
Питеру регулярно нужно копировать основной рабочий лист в копию в новой книге. Он отлично справляется с этим с помощью 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.