Скопирован лист1 (с созданием копии) в котором содержится определённый макрос (то есть получается, что созданный Лист1(2) так же содержит макрос под таким же именем как и лист1.
Как удалить макрос с активного листа, которым является Лист1(2), не затрагивая макроса который находиться в Листе1? Имя (имена) удаляемого макроса должно быть прописано в коде макроса убийцы.
Есть следующий код единственно, который нашла на форуме от Pavel55:
Но после копирования листа и запуска этого макроса, удаляется макрос в Листе 1, но никак не в активном Листе1(2).
Так же этот макрос выводит форму для ввода имени удаляемого макроса, что совершенно ненужно. Помогите решить задачу плиииз!
Как удалить макрос с активного листа, которым является Лист1(2), не затрагивая макроса который находиться в Листе1? Имя (имена) удаляемого макроса должно быть прописано в коде макроса убийцы.
Есть следующий код единственно, который нашла на форуме от Pavel55:
Код |
---|
Sub DeleteProcedure() Dim iProcedure As String Dim iVBComponent As Object Dim iStartLine As Long Dim iCountLines As Long Dim Killed As Boolean iProcedure = InputBox(Prompt:="Введите имя макроса," & _ vbCrLf & "который требуется удалить", Title:="Удаление макроса";) If iProcedure$ = "" Then _ MsgBox "Вы не указали имя ненужного макроса", 48, "Ошибка": Exit Sub For Each iVBComponent In ActiveWorkbook.VBProject.VBComponents With iVBComponent.CodeModule If .Find("Sub " & _ iProcedure$, 1, 1, .CountOfLines, 1) = True Then iStartLine& = .ProcStartLine(iProcedure$, 0) iCountLines& = .ProcCountLines(iProcedure$, 0) .DeleteLines iStartLine&, iCountLines& Killed = True Exit For End If End With Next If Killed = True Then MsgBox "Макрос " & iProcedure$ & " удалён!", 64, "Удаление макроса" Else MsgBox "Макрос " & iProcedure$ & " не найден!", 48, "Удаление макроса" End If End Sub |
Так же этот макрос выводит форму для ввода имени удаляемого макроса, что совершенно ненужно. Помогите решить задачу плиииз!