gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:08:13 27 4
gpt4 key购买 nike

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com