Excel 将模块复制到其他工作簿时,VBA会插入额外的括号
因此,正如标题所述,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
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为什么我要使用从字符串添加,这似乎有点倒退。不过,在这个特殊问题上,我只是在这里学习诀窍。谢谢你的帮助