Текущее время: Сб, авг 02 2025, 05:31

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re:
СообщениеДобавлено: Ср, фев 18 2009, 10:19 
Начинающий
Начинающий

Зарегистрирован:
Ср, фев 18 2009, 08:57
Сообщения: 1
Пол: Мужской
Tetty написал:
а можно быстро и динамически сделать макрос через abap?


лучше поздно - но выложить текст, можт кому еще нада.
тоже была проблема, но с помощью макроса она исчезла :)
по кусочкам в инете нарыл и вот что получилось

INCLUDE OLE2INCL.
data:
w_excel TYPE ole2_object,
w_wbooks TYPE ole2_object,
w_wbook TYPE ole2_object,
w_sheet TYPE ole2_object,
w_range TYPE ole2_object,
w_columns TYPE ole2_object,
w_cell TYPE ole2_object,
w_cell1 TYPE ole2_object,
w_cell2 TYPE ole2_object,
w_font TYPE ole2_object,
w_bord1 TYPE ole2_object,
w_bord2 TYPE ole2_object,
w_bord3 TYPE ole2_object,
w_bord4 TYPE ole2_object,
w_1 TYPE ole2_object,
w_2 TYPE ole2_object,
w_3 TYPE ole2_object,
w_4 TYPE ole2_object,
w_5 TYPE ole2_object,
w_6 TYPE ole2_object,
book_name TYPE string,
module_name TYPE string,
macros_name TYPE string.

data: i TYPE i, j TYPE i, k type i, rc TYPE c LENGTH 8.

CREATE OBJECT w_excel 'Excel.Application'.
CALL METHOD OF w_excel 'Workbooks' = w_wbooks.
SET PROPERTY OF w_excel 'Visible' = 1.
CALL METHOD OF w_wbooks 'Add'.
GET PROPERTY OF w_excel 'ActiveSheet' = w_sheet.
GET PROPERTY OF w_excel 'ActiveWorkbook' = w_wbook.
GET PROPERTY OF w_wbook 'Name' = book_name.
CALL METHOD OF w_excel 'VBE' = w_1.
CALL METHOD OF w_1 'ActiveVBProject' = w_2.
CALL METHOD OF w_2 'VBComponents' = w_3.
GET PROPERTY OF w_3 'Count' = i.
i = i + 1.
CALL METHOD OF w_3 'Add' EXPORTING #1 = 1.
CALL METHOD OF w_3 'Item' = w_4 EXPORTING #1 = i.
GET PROPERTY OF w_4 'Name' = module_name.
CONCATENATE book_name '!' module_name '.AAA' INTO macros_name.
CALL METHOD OF w_4 'CodeModule' = w_5.
CALL METHOD OF w_5 'InsertLines' EXPORTING #1 = 1 #2 = 'Sub AAA()'. " Здесь поместить свой макрос
CALL METHOD OF w_5 'InsertLines' EXPORTING #1 = 2 #2 = 'MsgBox "Работает" '.
CALL METHOD OF w_5 'InsertLines' EXPORTING #1 = 3 #2 = 'End Sub'.
CALL METHOD OF w_excel 'Application' = w_6.
CALL METHOD OF w_6 'Run' EXPORTING #1 = macros_name.

CALL METHOD OF w_sheet 'CELLS' = w_cell1 EXPORTING #1 = 3 #2 = 1.
CALL METHOD OF w_sheet 'CELLS' = w_cell2 EXPORTING #1 = i #2 = j.
CALL METHOD OF w_sheet 'RANGE' = w_range EXPORTING #1 = w_cell1 #2 = w_cell2.

* CALL METHOD OF w_range 'SUBTOTAL' = rc " вот тут и возникла трабла с передачей массива !!!
* EXPORTING
* #1 = 1
* #2 = -4157
* #3 = '3' " здесь должен был быть массив колонок 'Array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)'
* #4 = 'TRUE'
* #5 = 'FALSE'
* #6 = 'TRUE'.

FREE OBJECT w_range .
FREE OBJECT w_cell2 .
FREE OBJECT w_cell1 .
SET PROPERTY OF w_excel 'Visible' = 1.
FREE OBJECT w_sheet .
FREE OBJECT w_wbook .
FREE OBJECT w_wbooks .
FREE OBJECT w_excel .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB