彼得经常需要将主工作表复制到新工作簿中的副本中。他可以通过VBA做到这一点。但是,他正在复制的工作表具有与之关联的代码,并且代码也被复制。

Peter不想复制中的代码,但他确实希望将代码保留在原件中。他想知道宏中是否有办法删除刚复制的工作表中的工作表代码。

如何进行取决于您希望完成的工作簿(您要复制到的工作簿)的外观。首先,完成的工作簿是否包含宏(是否包含任何宏)?如果答案是否定的,那么它将不包含任何宏,那么您可以通过将新工作簿保存为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应该声明为字符串变量。

对于其他可能会以编程方式影响不同代码模块的其他方式,请参考此处的Chip Pearson的出色信息也不会出错:

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

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(7612)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。