|
автор: DN (30.11.-1 в 00:00) |
|
| ПРИ КОПИРОВАНИИ ЛИСТА В НОВУЮ КНИГУ ХОЧУ ЧТО ВМЕСТЕ С НИМ (ЛИСТОМ)КОПИРОВАЛИСЬ ВСЕ МОДУЛИ С ПРОЦЕДУРАМИ ИЗ СТАРОЙ КНИГИ.
Дайте кто-нибудь процедуру, пожалуйста. Очень надо. | |
|
| |
|
автор: pashulka (30.11.-1 в 00:00) |
|
| Re: ПРИ КОПИРОВАНИИ ЛИСТА В НОВУЮ КНИГУ ХОЧУ ЧТО ВМЕСТЕ С НИМ КОПИРОВАЛИСЬ ВСЕ МОДУЛИ Если новая книга создаётся путём копирования отдельного взятого рабочего листа, т.е. Worksheets(1).Copy, то вместо копирования с последующим экспортом и импортом всех стандартных модулей, можно сделать следующее : создать копию всей рабочей книги, а затем удалить все ненужные листы.
Что же касается импорта всех стандартных модулей во вновьсозданную книгу, то это можно осуществить например, так :
iTempPath = Environ("Temp") & ""
With Workbooks.Add(xlWBATWorksheet).VBProject.VBComponents
For Each iVBComponent In ThisWorkbook.VBProject.VBComponents
If iVBComponent.Type = 1 Then
iModuleName = iTempPath & iVBComponent.Name
iVBComponent.Export FileName:=iModuleName
.Import FileName:=iModuleName: Kill iModuleName
End If
Next
End With
Примечание : начиная с версии MS Excel XP для осуществления подобных манипуляций необходимо предварительно в меню Сервис выбрать пункт Макросы и команду Безопасность. Затем выделить закладку Надёжные источники и установить "флажок" Доверять доступ к Visual Basic Project | |
|
| |