Peter regularmente necesita copiar una hoja de trabajo maestra a una copia en un nuevo libro de trabajo. Puede hacer esto muy bien con VBA. Sin embargo, la hoja de trabajo que está copiando tiene un código asociado, y el código también se copia.

Peter no quiere el código en la copia, pero quiere que se deje en el original. Se pregunta si hay alguna forma, en su macro, de eliminar el código de la hoja de trabajo en la hoja de trabajo recién copiada.

La forma en que lo haga depende de cómo desee que se vea el libro de trabajo terminado (el que está copiando). En primer lugar, ¿el libro de trabajo terminado contendrá macros, cualquier macros, o no? Si la respuesta es no, no contendrá macros, entonces puede realizar la tarea fácilmente guardando el nuevo libro en formato XLSX. De esa manera, Excel se encarga de deshacerse de todas las macros por usted. Puede hacer esto incluyendo una línea en su código similar a la siguiente cuando guarde su libro de trabajo:

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

Sin embargo, si solo desea deshacerse del código de la hoja de trabajo pero guardar el nuevo libro de trabajo con cualquier otro código de macro intacto, deberá adoptar un enfoque diferente. En este caso, podría incluir la siguiente línea en su macro:

ActiveWorkbook.VBProject.VBComponents("Sheet1")

Esto supone que el nuevo libro es el libro activo y que la hoja de trabajo cuyo código desea eliminar se denomina Hoja1. También puede utilizar estas líneas para realizar la misma tarea:

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

Tenga en cuenta que wsName debe declararse como una variable de cadena.

Para ver un montón de otras formas en las que puede afectar diferentes módulos de código mediante programación, no puede equivocarse al consultar la excelente información de Chip Pearson aquí:

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

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (7612) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.