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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2010, 10:00   #1
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию Макросом обновить макрос...

Возможно ли макросом из одной книги обновить часть макроса в другой книге???
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 10:46   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

поищите книгу Джона Уокенбаха "Профессиональное программирование на VBA в Excel 2002".
Там есть пример как полностью заменить модуль или часть кода.
Удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.04.2010, 10:52   #3
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Это очень сложно??? Может ктото может подсказать?
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 11:04   #4
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
поищите книгу Джона Уокенбаха "Профессиональное программирование на VBA в Excel 2002".
Там есть пример как полностью заменить модуль или часть кода.
Удачи!
Извините, я что-то не могу найти...
Если у Вас есть эта книга подскажите плиз какая глава или стр.
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 11:21   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Скачать книгу Джона Уокенбаха "Профессиональное программирование на VBA в Excel 2002" можно здесь: http://excelvba.ru/books.html
Читайте, начиная с 679-й страницы.
На странице 682 есть пример:
Цитата:
Листинг 28.3. Обновление существующего модуля кода

Последний раз редактировалось EducatedFool; 29.04.2010 в 11:25.
EducatedFool вне форума Ответить с цитированием
Старый 29.04.2010, 11:28   #6
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Скачать книгу Джона Уокенбаха "Профессиональное программирование на VBA в Excel 2002" можно здесь: http://excelvba.ru/books.html
Читайте, начиная с 679-й страницы.
На странице 682 есть пример:
Огромнейшее спасибо. Нашел.

Возникнет ли проблема если у меня на обновляемую книгу стоит пароль на макросы???
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 11:39   #7
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Код:
Sub ReplaceModule()

' Ýêñïîðò Modulel èç òåêóùåé êíèãè
Filename = ThisWorkbook.Path & "Ntempmodxxx.bas"
    ThisWorkbook.VBProject.VBComponents ("Module1")
        .Export Filename
' Çàìåíà Modulel â ôàéëå User3oo4.xls


Set VBF = ActiveWorkbook.VBProject
On Error GoTo ErrHandle
With VBP.VBComponents
    .Remove VBP.VBComponents("Module1")
    .Import Filename
End With
' Óäàëåíèå âðåìåííîãî ôàéëà
Kill Filename
MsgBox "Ìîäóëü óñïåøíî çàìåíåí.", vblnformation
Exit Sub
ErrHandle:
' Îøèáêà?
MsgBox "ÎØÈÁÊÀ. Íåâîçìîæíî çàìåíèòü ìîäóëü.", _
vbCritical



End Sub

Что-то здесь материться???
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 11:47   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Что-то здесь материться
В коде много ошибок распознавания текста (русские буквы перемешаны с латиницей), так что используйте как образец, а в VBA набирайте код вручную.
EducatedFool вне форума Ответить с цитированием
Старый 29.04.2010, 11:52   #9
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
В коде много ошибок распознавания текста (русские буквы перемешаны с латиницей), так что используйте как образец, а в VBA набирайте код вручную.


Вот пример. Вродебы все правильно но матерится
Вложения
Тип файла: rar обновление.rar (18.6 Кб, 21 просмотров)
sasha_prof вне форума Ответить с цитированием
Старый 29.04.2010, 12:07   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А если немного внимательнее посмотреть на код, и исправить пару ошибок?

Код:
Sub ReplaceModule()
    ' Экспорт Modulel из текущей книги
    Filename = ThisWorkbook.Path & "\Ntempmodxxx.bas"
    ThisWorkbook.VBProject.VBComponents("Module1").Export Filename

    Set VBP = ThisWorkbook.VBProject
    On Error GoTo ErrHandle
    With VBP.VBComponents
        .Remove VBP.VBComponents("Module1")
        .Import Filename
    End With
    ' Удаление временного файла
    Kill Filename
    MsgBox "Модуль успешно заменен.", vblnformation
    Exit Sub
ErrHandle:
    ' Ошибка?
    MsgBox "ОШИБКА. Невозможно заменить модуль.", vbCritical
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Макрос, запускающий макрос из другого закрытого файла petruha Microsoft Office Excel 7 14.03.2010 11:31
Макросом создать кнопку и посадить на нее другой макрос 2 as-is Microsoft Office Excel 0 27.02.2010 11:53
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51
макросом обновить диапазон сводной Dorvir Microsoft Office Excel 4 28.09.2008 23:28