Страницы: 1
RSS
Ошибка при удалении определенной процедуры из модуля листа
 
Добрый день, уважаемые форумчане
у меня при запуска следующий макрос  возникает ошибка (Run-time error '1004':  Application-defined or object-defined error)
Код
Sub Delete_Sub_From_Module()
    Dim lCountLines As Long, li As Long, lStartLine As Long, lProcLineCount As Long
    Dim sCodeName As String, sProcName As String
With ActiveWorkbook.VBProject.VBComponents("Module1") '                            ===>тут начинается ошибка
        'получаем кол-во строк кода в модуле
        lCountLines = .CodeModule.CountOfLines
        'получаем первую строку с кодом, исключая строки декларирования функции и опций модуля
        lStartLine = .CodeModule.CountOfDeclarationLines + 1
        'цикл по всем строкам кода внутри модуля
        For li = lStartLine To lCountLines
            'получаем имя процедуры/функции, внутри которой строка кода
            sProcName = .CodeModule.ProcOfLine(li, 0)
            'если имя процедуры совпадает с тем, которое нам нужно
            If sProcName = "tа234" Then
                'узнаем кол-во строк процедуры/функции
                lProcLineCount = .CodeModule.ProcCountLines(sProcName, 0)
                'удаляем процедуру/функцию
                .CodeModule.DeleteLines li, lProcLineCount - 1
                Exit For
            End If
            li = li + lProcLineCount
        Next li
    End With
End Sub
скажите пожалуйста, как можно решить эту проблему.
Изменено: azma - 17.04.2020 11:34:32
 
а если строку 18 написать так:
               .CodeModule.DeleteLines li, lProcLineCount
и  
Код
li = li + lProcLineCount
втащить в If
а еще лучше вместо него и Exit For написать Exit Sub

т.е. последние строки должны выглядеть так:
Код
                .CodeModule.DeleteLines li, lProcLineCount  '-1
                Exit Sub
            End If
        Next li
    End With
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
не помогло, теперь такое сообщение выходит:
Код
Run-time error '1004':
Method 'VBProject' of object '_Workbook' failed

у меня стоит office 365  (mando 2016)
Изменено: azma - 17.04.2020 15:51:59
 
без примера дальнейший разговор ни о чем
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
прошу менять название темы на:
Ошибки при удаление отдельный  модель другим макросом

пример во вложении
 
Ну вообще макрос-то рабочий. Тут нужна информация. Но для начала советовал бы ознакомиться с этой статьей: Что необходимо для внесения изменений в проект VBA(макросы) программно
Скорее всего проблема именно в несоблюдении какого-то из требований.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
 Что необходимо для внесения изменений в проект VBA(макросы) программно
спасибо!!! все прусто
Страницы: 1
Наверх