我一直在使用下面的代码行将VBA模块从一个工作簿编译到另一个工作簿,但我不知道是否有更简单的方法,但是它们运行良好:
Set srcVba = srcWbk.VBProject
Set srcModule = srcVba.VBComponents(moduleName)
srcModule.Export (path) 'Export from source
trgtVba.VBComponents.Remove VBComponent:=trgtVba.VBComponents.Item(moduleName) 'Remove from target
trgtVba.VBComponents.Import (path) 'Import to target
但是,现在我需要复制工作表中而不是模块中的VBA代码。上面的方法不适用于那种情况。
我可以使用什么代码将工作表中的VBA代码从一个工作簿复制到另一个工作簿?
您无法删除并重新导入VBComponent
,因为从逻辑上讲会删除整个工作表。相反,您必须使用它CodeModule
来操纵组件中的文本:
Dim src As CodeModule, dest As CodeModule
Set src = ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule
Set dest = Workbooks("Book3").VBProject.VBComponents("ThisWorkbook") _
.CodeModule
dest.DeleteLines 1, dest.CountOfLines
dest.AddFromString src.Lines(1, src.CountOfLines)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句