好的,这就是我想要完成的事情:我正在尝试将所有 VBA 代码从“Sheet2”复制到“Sheet 3”代码 Pane 。我不是指将模块从一个模块复制到另一个模块,而是指 Excel 工作表对象代码。
我已经为应用程序可扩展性 5.3 添加了对 MS VB 的引用
我不知道从哪里开始,但这是我开始的,它不会去任何地方,而且可能都是错误的。请帮助 - 只想以编程方式将工作表 vba 代码复制到另一个工作表 vba Pane 。
Dim CodeCopy As VBIDE.CodePane
Set CodeCopy = ActiveWorkbook.VBProject.VBComponents("Sheet2").VBE
ActiveWorkbook.VBProject.VBComponenets("Sheet3").CodeModule = CodeCopy
最佳答案
使用 CodeModule
对象而不是 CodePane
,然后您可以创建第二个变量来表示目标模块(您将在其中“粘贴”代码)。
Sub test()
Dim CodeCopy As VBIDE.CodeModule
Dim CodePaste As VBIDE.CodeModule
Dim numLines As Integer
Set CodeCopy = ActiveWorkbook.VBProject.VBComponents("Sheet2").CodeModule
Set CodePaste = ActiveWorkbook.VBProject.VBComponents("Sheet3").CodeModule
numLines = CodeCopy.CountOfLines
'Use this line to erase all code that might already be in sheet3:
'If CodePaste.CountOfLines > 1 Then CodePaste.DeleteLines 1, CodePaste.CountOfLines
CodePaste.AddFromString CodeCopy.Lines(1, numLines)
End Sub
除了添加对“应用程序扩展性 5.3 的 MS VB 引用”的引用之外
您还需要 enable programmatic access到 VBA 项目。
In Excel 2007+, click the Developer item on the main Ribbon and then click the Macro Security item in the Code panel. In that dialog, choose Macro Settings and check the Trust access to the VBA project object model.
关于vba - 使用 VBA 代码将 VBA 代码从一个工作表复制到另一个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24701517/