Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2013, 09:17   #1
ermak123
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию Удалить макрос из листа

Добрый день!
Есть макрос на Лист1 (Проба)

Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 7 And Target.Row > 1 And Target.Cells.Count = 1 Then
        Set MyRange = ActiveCell
        Cancel = True
        wsDict.Select
       
       ' If Len(Target.Value) > 0 Then
           ' wsDict.Columns(1).AutoFilter Field:=1, Criteria1:="=" & Left$(Target.Value, 1) & "*"
       ' End If
    End If
    
 
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sNew As String
    If Target.Column = 7 Then
        With Application
            .EnableEvents = False
            sNew = Target.Value
            .Undo
            If Len(Target.Value) = 0 Then  
                Target.Value = sNew
            End If
            .EnableEvents = True
        End With
    End If
End Sub
Как его с помощью макроса можно удалить и сохранить книгу?
ermak123 вне форума Ответить с цитированием
Старый 07.02.2013, 10:04   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Ответил здесь

В этой статье расписывал про удаление кодов и модулей более подробно: Как удалить макросы в книге?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 07.02.2013 в 11:06.
The_Prist вне форума Ответить с цитированием
Старый 07.02.2013, 13:47   #3
ermak123
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию

The_Prist, Спасибо посмотрю
ermak123 вне форума Ответить с цитированием
Старый 07.02.2013, 17:07   #4
ermak123
 
Регистрация: 14.12.2012
Сообщений: 3
По умолчанию

The_Prist, Вот я подправил код

Код:
Sub red_r()
Dim lCountLines As Long, li As Long, lStartLine As Long, lProcLineCount As Long
    Dim sCodeName As String, sProcName As String
 
    With ActiveWorkbook.VBProject.VBComponents("Лист1")
        'получаем кол-во строк кода в модуле
        lCountLines = .CodeModule.CountOfLines
        'получаем первую строку с кодом, исключая строки декларирования функции и опций модуля
        lStartLine = .CodeModule.CountOfDeclarationLines + 1
        'цикл по всем строкам кода внутри модуля
        For li = lStartLine To lCountLines
            'получаем имя процедуры/функции, внутри которой строка кода
            sProcName = .CodeModule.ProcOfLine(li, 0)
            'если имя процедуры совпадает с тем, которое нам нужно
            If sProcName = "Worksheet_BeforeDoubleClick" Then
                'узнаем кол-во строк процедуры/функции
                lProcLineCount = .CodeModule.ProcCountLines(sProcName, 0)
                'удаляем процедуру/функцию
                .CodeModule.DeleteLines li, lProcLineCount - 1
                Exit For
            End If
            li = li + lProcLineCount
        Next li
    End With
End Sub
Он удалил но оставил

Код:
Option Explicit
End Sub
как это тоже удалить?
И как поставить еще чтобы он второй код удалял?
ermak123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос переноса строки из одного листа в другой ссержа Microsoft Office Excel 7 04.04.2016 15:03
Макрос кнопки открытия листа из другой книги esterny Microsoft Office Excel 5 02.12.2012 21:34
Макрос сохраниения листа книги staniiislav Microsoft Office Excel 8 11.05.2011 16:36
Удалить заданные строки с листа Azz100 Microsoft Office Excel 5 22.12.2009 14:27
Удалить строку листа Excel при выполнении условия Gennady Microsoft Office Excel 14 18.12.2007 13:54