问题描述
确定这里是我想要完成的:我正在尝试将所有VBA代码从Sheet2复制到Sheet 3代码窗格。我不是指将模块从一个复制到另一个,而是Excel表单对象代码。我已经添加了一个用于应用程序可扩展性的MS VB参考5.3
我不知道从哪里开始,但这是我刚刚开始的,它不会在任何地方,也可能都是错的。请帮助 - 只需要以编程方式将表单vba代码复制到另一个表vba窗格。
Dim CodeCopy为VBIDE.CodePane
设置CodeCopy = ActiveWorkbook.VBProject.VBComponents(Sheet2)VBE
ActiveWorkbook.VBProject.VBComponenets(Sheet3)。CodeModule = CodeCopy
使用 CodeModule
对象而不是 CodePane
,那么您可以创建一个第二个变量来表示目标模块(您将在其中粘贴代码)。
code> Sub test()
Dim CodeCopy作为VBIDE.CodeModule
Dim CodePaste作为VBIDE.CodeModule
Dim numLines As Integer
设置CodeCopy = ActiveWorkbook.VBProject.VBComponents(Sheet2)。CodeModule
设置CodePaste = ActiveWorkbook.VBProject.VBComponents(Sheet3)。CodeModule
numLines = CodeCopy.CountOfLines
'使用这一行来清除可能已经在sheet3中的所有代码:
'如果代码Paste.CountOfLines> 1 Then CodePaste.DeleteLines 1,CodePaste.CountOfLines
CodePaste.AddFromString CodeCopy.Lines(1,numLines)
End Sub
除了添加引用参考MS VB应用程序可扩展性5.3
您还需要启用程式化访问VBA项目。
Ok here is what I want to accomplish: I am trying to copy all the VBA code from "Sheet2" to "Sheet 3" code pane. I'm NOT referring to copying a Module from one to another but the excel sheet object code.
I already added a Reference to MS VB for Applications Extensibility 5.3
I'm not sure where to start but this is what I have started with and its not going anywhere and probably all wrong. Please Help - Simply want to programmatically copy sheet vba code to another sheet vba pane.
Dim CodeCopy As VBIDE.CodePane
Set CodeCopy = ActiveWorkbook.VBProject.VBComponents("Sheet2").VBE
ActiveWorkbook.VBProject.VBComponenets("Sheet3").CodeModule = CodeCopy
Use the CodeModule
object instead of the CodePane
, then you can create a second variable to represent the destination module (where you will "paste" the code).
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
In addition to adding a reference to "Reference to MS VB for Applications Extensibility 5.3"
You'll also need to enable programmatic access to the VBA Project.
这篇关于将VBA代码从一个Worksheet复制到另一个使用VBA代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!