vba - 使用 VBA 代码将 VBA 代码从一个工作表复制到另一个工作表

标签 vba excel

好的,这就是我想要完成的事情:我正在尝试将所有 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/

相关文章:

excel - 使用 VBA 在 Excel 范围内查找第一个公式的最快方法是什么?

sql - 从电子表格和 Access 数据库中获取用户 ID

excel - 在 SUM() 之前对值进行舍入

excel - 为什么我收到错误 - 此公式的参数过多?

Excel VBA 集合和自定义数据类型

excel - 根据另一个值和范围查找值

excel - 将变量放入 Excel VBA 函数时出错

c# - EPPlus 工作表总是在第一次尝试时抛出异常,然后在第二次尝试时工作

python - 如何使用 python 连接到外部 API?

regex - Access VBA正则表达式: Input mask validation.检查字符串是否仅由重复模式组成