Excel 将模块复制到其他工作簿时,VBA会插入额外的括号

Excel 将模块复制到其他工作簿时,VBA会插入额外的括号,excel,vba,Excel,Vba,因此,正如标题所述,VBA在移动代码之后添加了一组额外的括号。为什么会这样?我怎样才能让它停止 下面是移动模块的代码: Set src = ThisWorkbook.VBProject.VBComponents("Module2").CodeModule Set dest = ActiveWorkbook.VBProject.VBComponents("Sheet2") _ .CodeModule dest.DeleteLines 1, dest.CountOfLines dest.AddFr

因此,正如标题所述,VBA在移动代码之后添加了一组额外的括号。为什么会这样?我怎样才能让它停止

下面是移动模块的代码:

Set src = ThisWorkbook.VBProject.VBComponents("Module2").CodeModule
Set dest = ActiveWorkbook.VBProject.VBComponents("Sheet2") _
.CodeModule

dest.DeleteLines 1, dest.CountOfLines
dest.AddFromString src.Lines(1, src.CountOfLines)
以下是输出后的代码:

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

 Private Sub MESSAGEBERX()
      MsgBox ("You did it")
 End Sub
 ()
编辑


结果我漏掉了顶部的东西。事实也证明,罪魁祸首就是它。这是因为“私人功能”部分吗?我仍然在搞乱它,但是如果没有额外的括号,我仍然无法让它移动…

不知道额外的括号来自哪里-这看起来像是VBE中的一个bug。一个简单的解决方法是使用
InsertLines
而不是
AddFromString

Set src = ThisWorkbook.VBProject.VBComponents("Module2").CodeModule
Set dest = ActiveWorkbook.VBProject.VBComponents("Sheet2") _
.CodeModule

dest.DeleteLines 1, dest.CountOfLines
dest.InsertLines 1, src.Lines(1, src.CountOfLines)

IDK为什么我要使用从字符串添加,这似乎有点倒退。不过,在这个特殊问题上,我只是在这里学习诀窍。谢谢你的帮助