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

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

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

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

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

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

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

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

Код: plaintext
1.
2.
3.
4.
Sub test()
 ActiveSheet.Shapes( 1 ).Select
 Selection.Verb Verb:=xlPrimary
End Sub
...
Рейтинг: 0 / 0
16.02.2010, 23:34
    #36473816
Melafon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное открытие файла Excel, внедренного в лист Excel
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
17.02.2010, 16:56
    #36475688
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное открытие файла Excel, внедренного в лист Excel
Melafon,

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

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

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

В моему случае в xls-файл былы вложены несколько *.bmp и специфичных *.mac файлы, которые надо было просто сохранить на диск в определенную директорию - открывать и запускать эти файлы не надо было.
Готового метода по сохранению на диск вложенных файлов в VBA не нашлось, пришлось идти через метод .Copy и дальше вытягивать его из буфера.
...
Рейтинг: 0 / 0
18.02.2010, 11:51
    #36477089
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное открытие файла Excel, внедренного в лист Excel
Хмм... а так чем не подходит?
Код: 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
18.02.2010, 12:06
    #36477160
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное открытие файла Excel, внедренного в лист Excel
Hugo121Хмм... а так чем не подходит?Видимо потому, что речь уже не о вложенных документах офиса, а о картинках bmp и прочих, в этом случае код не прокатит, хотя не исключено, что и их можно сохранить как-то не использую буфера обмена.
А с буфером обмена наверно можно копировать буфер и делать вставку куда-нибудь в Paint.
...
Рейтинг: 0 / 0
18.02.2010, 12:13
    #36477200
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Программное открытие файла Excel, внедренного в лист Excel
Да, Вы правы - не все файлы удобно открывать и сохранять собств. методами как это работает со вложенными офис-документами

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


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