I need to copy a code module (say Module1) from the ActiveWorkBook into another workbook (say Book2) using VBA. I can do it in the editor, but am trying to automate this.
Another option is to copy directly the text from one module to the other. This avoids creating/deleting an auxilliary file.
Try:
Code:
Public Sub CopyModule()
Dim VBCodMod1 As Object, VBCodMod2 As Object
Set VBCodMod1 = Workbooks("Book1").VBProject.VBComponents("Module1").CodeModule
Set VBCodMod2 = Workbooks("Book2").VBProject.VBComponents.Add(1).CodeModule
VBCodMod2.DeleteLines 1, VBCodMod2.CountOfLines
VBCodMod2.AddFromString VBCodMod1.Lines(1, VBCodMod1.CountOfLines)
End Sub
We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel
Which adblocker are you using?
Disable AdBlock
Follow these easy steps to disable AdBlock
1)Click on the icon in the browser’s toolbar. 2)Click on the icon in the browser’s toolbar. 2)Click on the "Pause on this site" option.
Go back
Disable AdBlock Plus
Follow these easy steps to disable AdBlock Plus
1)Click on the icon in the browser’s toolbar. 2)Click on the toggle to disable it for "mrexcel.com".
Go back
Disable uBlock Origin
Follow these easy steps to disable uBlock Origin
1)Click on the icon in the browser’s toolbar. 2)Click on the "Power" button. 3)Click on the "Refresh" button.
Go back
Disable uBlock
Follow these easy steps to disable uBlock
1)Click on the icon in the browser’s toolbar. 2)Click on the "Power" button. 3)Click on the "Refresh" button.