как удалить часть макроса из другого или этого же макроса

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
AlexKas
Сообщения: 5
Зарегистрирован: 12 мар 2010, 07:41

Подскажите, если возможность удалить часть макроса из этого же или другого макроса, по выполнению определенного условия, например после наступления определенной даты? :confused:
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexKas
Макрос по удалению строк в др. Макросе:

Код: Выделить всё

Sub DeleteLineInAnotherMacros()
NormalTemplate.VBProject.VBComponents("Имя модуля").CodeModule.DeleteLines 1, 2
End Sub
Запуск Макроса в определённый день:

Код: Выделить всё

Sub RunMacro()
Application.OnTime when:="2010/3/13", Name:="Имя процедуры"
End Sub
Этот Макрос надо запускать. Предлагаю его запускать при Открытии документов, т.е. добавить этот код в модуль, который срабатывает при открытии документов.
AlexKas
Сообщения: 5
Зарегистрирован: 12 мар 2010, 07:41

Огромное спасибо :)
почему то не выходит запустить в макросе в екселе, постоянно выдает ошибку, может есть рецепт???
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexKas
я делал для Word. Для Excel, видимо, др. команды - в выходные гляну - но мог бы и сам догадаться. Хотя не факт, что получится.
AlexKas
Сообщения: 5
Зарегистрирован: 12 мар 2010, 07:41

самое главное что это в принципе возможно, под ворд действительно класно работает, но нужней в екселе, а где почитать не знаю, и времени остается на это только ночью (работаю по 12 часов,) слава богу есть такие форумы, и шишек меньше набивается, и чувствуешь себя не так одиноко при решении таких вопросов. спасибо тебе огромное Busine2009, ЧЕЛОВЕЧИЩЕ ;)
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexKas
а где находится Макрос в Книге или в Личной книге макросов?
Чтобы заработало: Сервис - Макрос - Безопасность - Надёжные издатели - Доверять доступ к Visual Basic Project.

Код: Выделить всё

Sub RunMacro()
Application.OnTime EarliestTime:=TimeValue("2010/3/20"), Procedure:="Имя процедуры"
End Sub

Код: Выделить всё

Sub DeleteLineInAnotherMacros()
Workbooks("personal.xls").VBProject.VBComponents("Имя модуля").CodeModule.DeleteLines 1, 2
End Sub
Если не получается, то спрашивайте.
AlexKas
Сообщения: 5
Зарегистрирован: 12 мар 2010, 07:41

макрос в книге находится, все повключал, удаляет, но не могу избавиться от ошибки в конце выполнения

Код: Выделить всё

Private Sub Worksheet_Activate()
If Date > "13.04.2010" Then
On Error Resume Next
Workbooks("l.xls").VBProject.VBComponents("Лист1").CodeModule.DeleteLines 2, 20
On Error Resume Next
Workbooks("l.xls").VBProject.VBComponents("Лист4").CodeModule.DeleteLines 2, 20
On Error Resume Next
Workbooks("l.xls").VBProject.VBComponents("Лист5").CodeModule.DeleteLines 2, 20
End If
 End Sub
написал вот таким макаром, удаляет, но после первого листа викидает ошибку
"can't enter break mode at this time"
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

AlexKas
может я ошибаюсь (т.к. в программировании вообще не соображаю), но мне кажется, что это полный бред, какой-то On Error Resume Next десять раз подряд.
Я просто ещё бухой, но чтобы использовать следующую порцию On Error Resume Next, надо убрать ошибку через On Error GoTo 0.
AlexKas
Сообщения: 5
Зарегистрирован: 12 мар 2010, 07:41

да по разному пробовал, проблема с ошибкой не уходит.... :(
Ответить