Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выписывание на лист кодов ВБА - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выписывание на лист кодов ВБА
ВасилисаЛукьянчикова Дата: Среда, 17.01.2018, 15:45 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
нашла на сайте такой макрос.
Он выписывает на лист - содержимое кодов ВБА, которые в нем находятся (от ячейки E8).
Однако выписывает почему-то не все коды, а только один.

Как изменить этот макрос, чтобы он выписывал на лист - все коды. содержащиеся в его ВБА-модели ?
(То есть Module1, Module2 и тот что в модуле книги.)

У самой что-то не получается до этого додуматься.
К сообщению приложен файл: 4218696.xls (51.5 Kb)
 
Ответить
Сообщениенашла на сайте такой макрос.
Он выписывает на лист - содержимое кодов ВБА, которые в нем находятся (от ячейки E8).
Однако выписывает почему-то не все коды, а только один.

Как изменить этот макрос, чтобы он выписывал на лист - все коды. содержащиеся в его ВБА-модели ?
(То есть Module1, Module2 и тот что в модуле книги.)

У самой что-то не получается до этого додуматься.

Автор - ВасилисаЛукьянчикова
Дата добавления - 17.01.2018 в 15:45
Manyasha Дата: Среда, 17.01.2018, 15:59 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 902 ±
Замечаний: 0% ±

Excel 2010, 2016
ВасилисаЛукьянчикова, например так:
[vba]
Код
Sub t()
    Dim lr&
    [e8].CurrentRegion.ClearContents
    i = 8
    For Each vb_comp In ActiveWorkbook.VBProject.VBComponents
        With vb_comp.CodeModule
            If .CountOfLines > 0 Then
                Cells(i, "e") = vb_comp.Name
                i = i + 1
                lr = .CountOfLines
                Cells(i, "e").Resize(lr) = Application.Transpose(Split(.Lines(1, lr), vbCrLf))
                i = i + lr
            End If
        End With
    Next vb_comp
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеВасилисаЛукьянчикова, например так:
[vba]
Код
Sub t()
    Dim lr&
    [e8].CurrentRegion.ClearContents
    i = 8
    For Each vb_comp In ActiveWorkbook.VBProject.VBComponents
        With vb_comp.CodeModule
            If .CountOfLines > 0 Then
                Cells(i, "e") = vb_comp.Name
                i = i + 1
                lr = .CountOfLines
                Cells(i, "e").Resize(lr) = Application.Transpose(Split(.Lines(1, lr), vbCrLf))
                i = i + lr
            End If
        End With
    Next vb_comp
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 17.01.2018 в 15:59
ВасилисаЛукьянчикова Дата: Среда, 17.01.2018, 16:16 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Manyasha, спасибо.
Выручили.
 
Ответить
СообщениеManyasha, спасибо.
Выручили.

Автор - ВасилисаЛукьянчикова
Дата добавления - 17.01.2018 в 16:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!