powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Программное открытие файла Excel, внедренного в лист Excel
10 сообщений из 10, страница 1 из 1
Программное открытие файла Excel, внедренного в лист Excel
    #36468802
Melafon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, погуглил, не нашел ответа.

У меня есть макрос, который раскидывает по техкарте расходы на статьи в отчет. В итоге я получаю файл в виде сгруппированной таблицы (около 25000 строк за год), каждая статья разворачивается сначало помесячно, потом каждый месяц на проводки. Сначало у отчета не было дополнительных функций, потом были дописаны макросы формирования из отчета других более подробных отчетов. Один из них разворачивает статью в отдельный файл в виде сводной таблицы + сразу строит графики динамики расходов по структурным подразделениям.

Сейчас появилась мысль сделать полный анализ статьи коммунальных расходов по типам расходов (газ, вода, отопление) и подразделениям (строки - подразделения, столбцы - типы с помесячной разбивкой, с рейтингами, средними и т.п.) + автоматические графики.

Буду делать следующим образом. У меня есть форма другого отчета, которую я отредактировал для нужд этого. Форма состоит из двух листов. Первый - сама форма, с вписанными ВПРами на диапазоны второго листа. Отчет формируется так - из базы получаю сводную таблицу, макросом начинаю перебирать значения нужного поля, и данные копировать в определенные места на втором листе формы, ВПРы на первом подтягивают то что нужно. При этом форма хранится отдельным файлом.

Чтобы реализовать задуманное, мне нужно, чтобы форма была внутри файла, т.к. при отправке я не могу кидать два файла, многие не поймут, для чего второй файл, удалят, или из архива откроют и попытаются сформировать, а макрос выдаст ошибку.

Добавил файлик с формой на лист Excel, а открыть его не могу. Запись макроса дает код, который не работает:

ActiveSheet.Shapes("Object 1").Select
Windows("Лист в test").Visible = True
Selection.Verb Verb:=xlPrimary
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36469289
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melafon,

Можно попробовать так:

Код: plaintext
1.
2.
3.
4.
Sub test()
 ActiveSheet.Shapes( 1 ).Select
 Selection.Verb Verb:=xlPrimary
End Sub
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36473816
Melafon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

спасибо.
На работе получилось по другому открыть, внедренная книга открывается комбинацией Ctrl + Enter, нашел в help метод SendKeys
Код: plaintext
1.
2.
3.
Sub test()
 ActiveSheet.Shapes( 1 ).Select
 Application.SendKeys ("^~")
End Sub

но это ничего не дало, к открытой книге не могу присвоить имя, чтобы обращаться, типа

Set baza_7 = ActiveWindow


вообще никак не получается управлять открытой книгой, а при переходе на другую, открытая книга закрывается.

Решилось намного проще, переношу из исходного в отчетный файл одновременно форму и лист с данными, при этом ВПРы не сбиваются. По умолчанию поставил им свойства Visible = VeryHidden, обычные пользователи не догадаются о существовании этих двух скрытых листов, а это то что нужно))
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36475688
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melafon,

тоже часто использую верихидден, чтобы лист стал совсем невидимым.
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36475720
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть варинт использования вложенных файлов. Сам сделал таким образом установочный xls-файл.

Вам только модуль с функцией или полностью рабочий пример?

В кратце механизм такой: Метода VBA, который бы позволял бы вытащить влолженный файл в Excel' не существует. Поэтому делаем так, программно можно скопировать файл-объект в буфер, а потом средствами WinAPI вытащить его из буфера и сохранить на диск.
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36476401
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySVМетода VBA, который бы позволял бы вытащить вложенный файл в Excel' не существует.Как это не существует, я-же выше привёл код, может меня не так поняли или я не так понял.
Поэтому внедрил код сразу в файл Melafon - а:
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36477019
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен, Verb хорошая команда, она правда только открывает оле-объект.

В моему случае в xls-файл былы вложены несколько *.bmp и специфичных *.mac файлы, которые надо было просто сохранить на диск в определенную директорию - открывать и запускать эти файлы не надо было.
Готового метода по сохранению на диск вложенных файлов в VBA не нашлось, пришлось идти через метод .Copy и дальше вытягивать его из буфера.
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36477089
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хмм... а так чем не подходит?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub CommandButton1_Click()
 ActiveSheet.Shapes( 1 ).Select
 Selection.Verb Verb:=xlPrimary
 ActiveWorkbook.SaveAs Filename:= _
        "C:\Temp\" & ActiveWorkbook.Name, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
End Sub
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36477160
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Хмм... а так чем не подходит?Видимо потому, что речь уже не о вложенных документах офиса, а о картинках bmp и прочих, в этом случае код не прокатит, хотя не исключено, что и их можно сохранить как-то не использую буфера обмена.
А с буфером обмена наверно можно копировать буфер и делать вставку куда-нибудь в Paint.
...
Рейтинг: 0 / 0
Программное открытие файла Excel, внедренного в лист Excel
    #36477200
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, Вы правы - не все файлы удобно открывать и сохранять собств. методами как это работает со вложенными офис-документами

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


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