2016-07-09 3 views
1

Так как в заголовке указано, что VBA добавляет дополнительный набор скобок после того, как он переместит код. Почему он это делает? И как мне заставить его остановиться?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 
() 

EDIT

Оказывается, я ушел из вещи в верхней части. Также выясняется, что это был преступник. Это связано с частью «частной функции»? Я все еще с ним спотыкаюсь, но все равно не могу его переместить без дополнительных скобок ...

ответ

2

Не знаю, откуда возникают дополнительные скобки - это похоже на ошибку в VBE. Легко Обходной использовать 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) 
+0

ИДК, почему я использую добавить из строки, что только кажется, в обратном направлении. Но опять же я просто изучаю веревки здесь по этой конкретной проблеме. Спасибо за помощь –

Смежные вопросы