Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> макрос Excel из delphi, привязка макроса к эксель по ходу работы 
:(
    Опции темы
Sed0Y
  Дата 13.5.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Господа...
Есть у меня приложение в делфи, к примеру рядом с ехе лежит макрос экселя, при нажатии на кнопку выбираю эксэль фаил в котором данные для заливки в БД, но для того что бы были правильные данные нужно запустить макрос для этого документа.

Вопрос: как мне привязать(запустить) макрос для определенного документа, если допустим открыто 3 документа с названием ААА, БББ, ЦЦЦ
документа ЦЦЦ мы выбираем для заливки, в программе проверяет, если этот документ имеет имя ЦЦЦ то запускаем для него макрос????
PM MAIL ICQ   Вверх
Albinos_x
Дата 13.5.2010, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



большую часть ответа найдешь здесь: http://forum.vingrad.ru/forum/topic-84634/view-all.html


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Sed0Y
Дата 13.5.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 13.5.2010,  16:52)
большую часть ответа найдешь здесь: http://forum.vingrad.ru/forum/topic-84634/view-all.html

к сожалению нет основного, как макрос (отдельно лежащий) применить к определенному документу (
PM MAIL ICQ   Вверх
Albinos_x
Дата 14.5.2010, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



там же в статье рассказано как проводить навигацию по нескольким книгам...  для этого есть объект ExcelWorkBook... привязываешь его к нужному документу... и запускаешь из него макрос...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Sed0Y
  Дата 18.5.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 14.5.2010,  09:10)
там же в статье рассказано как проводить навигацию по нескольким книгам...  для этого есть объект ExcelWorkBook... привязываешь его к нужному документу... и запускаешь из него макрос...

я не разобрался - помоги плз.

вот так я получаю:
Код


......
FExcelApplication: TExcelApplication;
WorkBk: _WorkBook;
......

      WorkBk := FExcelApplication.WorkBooks.Open(FFileName, EmptyParam, EmptyParam, EmptyParam,
        EmptyParam, EmptyParam, EmptyParam,
        EmptyParam, EmptyParam, EmptyParam,
        EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
      WorkBk._AddRef;


      WorkSheet := WorkBk.Worksheets.Item['RAS'] as _WorkSheet;
      WorkSheet._AddRef;
      WorkSheet.Activate(0);


а как теперь привязать макрос который лежит на Диске "С" и запустить?

Это сообщение отредактировал(а) Sed0Y - 18.5.2010, 23:51
PM MAIL ICQ   Вверх
Albinos_x
Дата 1.6.2010, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



вечером попробую тебе конкретный пример дать


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 1.6.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



хм.... посмотрел...видимо механизм запуска макроса таков... мы можем запустить макрос, но он будет работать для всех книг сервера, но исходя из того, что чаще всего пишут в таких макросах, то сработает он применительно к активной книге. Но... можно попробовать прикрутить к книге проект VBA и запустить его уже от сервера, возможно в этом случае он будет исполняться для нужной книги. Итак, в нашем случае возможны 2 варианта выхода:
1. Пишем макрос так, чтоб он обращался не только к активной книге, но и к остальным подключенным к текущему серверу.
2. Экспериментируем с прикручиванием проекта VBA к книге:
Код
....
ExcelWorkbook1.VBProject........
.......
 
и последующим его запуском


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Sed0Y
Дата 5.6.2010, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 1.6.2010,  22:36)
хм.... посмотрел...видимо механизм запуска макроса таков... мы можем запустить макрос, но он будет работать для всех книг сервера, но исходя из того, что чаще всего пишут в таких макросах, то сработает он применительно к активной книге. Но... можно попробовать прикрутить к книге проект VBA и запустить его уже от сервера, возможно в этом случае он будет исполняться для нужной книги. Итак, в нашем случае возможны 2 варианта выхода:
1. Пишем макрос так, чтоб он обращался не только к активной книге, но и к остальным подключенным к текущему серверу.
2. Экспериментируем с прикручиванием проекта VBA к книге:
Код
....
ExcelWorkbook1.VBProject........
.......
 
и последующим его запуском

Прости, что так так поздно - СПАСИБО.
PM MAIL ICQ   Вверх
Albinos_x
Дата 8.6.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



не за что...
получилось?)


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.1298 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.