powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
12 сообщений из 12, страница 1 из 1
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623238
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Заметил, что если открытая книга содержит подключение к внешнему источнику данных + модули с макросами, то при создании новой книги макросом VBA, это подключение теряется, и модули тоже.

Можно ли как то при создании новой книги, копировать подключение и модули из открытой книги?
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623286
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MAULER,
попробуйте или создание из шаблона
Код: vbnet
1.
set myWb = workbooks.add("путь к книге-шаблону")

или сохраните текущую книгу с помощью .SaveCopyAs , потом откройте и удалите/очистите листы.
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623303
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

а "путь к книге-шаблону" - это файл на диске?
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623320
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийMAULER,
попробуйте или создание из шаблона
Код: vbnet
1.
set myWb = workbooks.add("путь к книге-шаблону")

или сохраните текущую книгу с помощью .SaveCopyAs , потом откройте и удалите/очистите листы.

а что потом делать с myWb ?
Как её сохранить в книгу без предварительного просмотра?
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623324
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MAULER,
да, причем это необязательно .xlt или .xltm, может быть обычная книга.
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623339
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийMAULER,
да, причем это необязательно .xlt или .xltm, может быть обычная книга.

Я сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
    Set myWb = Workbooks.Add("C:\Temp\template.xlsm")
    
    myWb.SaveCopyAs "C:\Temp\proba1.xlsm"
    myWb.Close SaveChanges:=False
    
    Application.ScreenUpdating = False
    On Error Resume Next



Работает прекрасно!
Но как мне к книге myWb добавить лист из открытой книги?
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623342
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULERНо как мне к книге myWb добавить лист из открытой книги?Я ж ссылку давал в соседнем топике. Там есть параметры - куда копировать лист
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623354
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProMAULERНо как мне к книге myWb добавить лист из открытой книги?Я ж ссылку давал в соседнем топике. Там есть параметры - куда копировать лист

Если честно, я уже запутался. Мне ведь надо не в абы какую книгу сохранить, а ту что уже создана из шаблона.
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623388
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так и надо указать лист из этой целевой книги в качестве параметра
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39623390
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Заработало вот так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    FileN = "C:\Temp\proba1.xlsm"
            
    Set myWb = Workbooks.Add("C:\Temp\template.xlsm")
    ThisWorkbook.Sheets("кт").Copy Before:=myWb.Sheets("Проекты")
                
    myWb.SaveCopyAs FileN
    myWb.Close SaveChanges:=False
    
    Application.ScreenUpdating = False
    On Error Resume Next



В только что созданную из шаблона ("template.xlsm") книгу "proba1.xlsm" с уже имеющимся листом "Проекты", копируется лист "кт"
открытой книги.
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39624152
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только проблема в том, чтобы начальство не хочет быть привязано к " template.xlsm "

Текущее решение работает вполне стабильно. Но надо держать где то файлик шаблона, что и не нравится ему.

Видимо придется воспользоваться вторым вариантом, - делать копию книги, и уже в ней удалять ненужные листы...
Есть ли ещё какие то мысли?
...
Рейтинг: 0 / 0
Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
    #39624177
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встал теперь вопрос: Как сделать полную копию книги и в этой копии удалить лист?
Понятно, что можно сначала сохранить книгу с другим именем, потом открыть её по этому имени, потом удалить лист.

Но это во первых много всяких морганий экранов, во вторых долго. Есть ли возможность как то через использование переменных/объектов, подключиться к книге не открывая её, или открывая как то не на виду, и там удалить лист?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: Как скопировать в новую книгу, подключение к внешним данным и макросы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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