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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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