powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно поменять макрос который лежит внутри листа
4 сообщений из 4, страница 1 из 1
Как программно поменять макрос который лежит внутри листа
    #33242816
Фотография Jojo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать отдельный файл который поменяет программно макрос в другой рабочей книге на определенном листе.
Кто делал...подскажите ?

Думаю лучше сначала почистить макрос, потом положить новый
Макрос лежит не в модуле,а на листе !!!

Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
Как программно поменять макрос который лежит внутри листа
    #33243037
Код: plaintext
\' Удаляем.\n    With ThisWorkbook.VBProject.VBComponents("Лист1").CodeModule\n        .DeleteLines  1 , .CountOfLines\n    End With

Добавляем.

Только замени

Код: plaintext
Set vbc = ThisWorkbook.VBProject.VBComponents("Лист1")
...
Рейтинг: 0 / 0
Как программно поменять макрос который лежит внутри листа
    #33243096
Фотография Jojo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Workbooks.Open Filename:=FILE2
Name_book2 = Application.ActiveWorkbook.Name
Workbooks(Name_book2).Activate
Set vbc = Workbooks(Name_book2).VBComponents("Загрузка")
With vbc.CodeModule
.DeleteLines 1, .CountOfLines
End With

Ошибка метод не поддреживается ..не катит


Scio me nihil scire

<<Jojo®>>
...
Рейтинг: 0 / 0
Как программно поменять макрос который лежит внутри листа
    #33243543
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    Dim wb As Workbook
    Dim cm As CodeModule
    Dim strPath As String
    Dim idx As Long
    
    strPath = "D:\Temp\Книга1.xls"
    
    Set wb = Application.Workbooks.Open(strPath)
    Set cm = wb.VBProject.VBComponents("Лист1").CodeModule
    
    With cm
        .DeleteLines  1 , .CountOfLines
        idx =  1 
        .InsertLines idx, "Sub Test()"
        idx = idx +  1 
        .InsertLines idx, "Msgbox ""Test!"", vbInformation"
        idx = idx +  1 
        .InsertLines idx, "End Sub"
    End With
    
    Set cm = Nothing
    Set wb = Nothing

Подключи ссылку Microsoft Visual Basic for Application Extensibility.

И еще. VBComponents("Лист1") надо указывать название модуля листа, а не его название в книге.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно поменять макрос который лежит внутри листа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]