Текущее время: Чт, июл 17 2025, 06:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Выделение ячеек в таблице Word через OLE
СообщениеДобавлено: Ср, июл 02 2014, 09:24 
Ассистент
Ассистент

Зарегистрирован:
Вт, июл 30 2013, 11:01
Сообщения: 32
Добрый день!
Необходимо выделить несколько ячеек в таблице, а затем их объединить.
Записала VBS макрос в Word. Теперь пытаюсь перевести его на ABAP.
На VBS это выглядит следующим образом:
Code:
sub merge_cells()
ActiveDocument.Tables(2).Rows(3).Cells(1).Select
Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
Selection.Cells.Merge
end sub

С первой и последней строчкой макроса все понятно. Не получается вторая.
Пробовала так:
Code:
         CALL METHOD OF o_selection 'MoveRight'
           exporting
           #1 = 'wdCharacter'
           #2 = '3'
           #3 = 'wdExtend'.

После выполнения sy-subrc = 2.
Пробовала так:
Code:
         CALL METHOD OF o_selection 'MoveRight'
           exporting
           #1 = 'Unit:=wdCharacter'
           #2 = 'Count:=3'
           #3 = 'Extend:=wdExtend'.

sy-subrc = 0. Но никакого эффекта не производит.
Как правильно интерпретировать эту строку на ABAP?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выделение ячеек в таблице Word через OLE
СообщениеДобавлено: Ср, июл 02 2014, 09:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
в ole вызовах нужно заменять константы на числа, т.к. ole заворачивает внутр.типы abap в ole variant, т.е. сам пытается определить тип.
подсмотреть значения констант можно при отладке VBA скрипта, или, там же в VBA редакторе, в Object browser (F2)
вбиваем в поиск нужную константу, например wdCharacter, и видим, что она определена в классе WdUnits:
Code:
Const wdCharacter = 1
    Member of Word.WdUnits
Const wdExtend = 1
    Member of Word.WdMovementType
...
Function MoveRight([Unit], [Count], [Extend]) As Long
    Member of Word.Selection
значит вызов будет выглядеть примерно так:
         call method of o_selection 'MoveRight'
           exporting
           #1 = 1 "wdCharacter
           #2 = 3
           #3 = 1 "wdExtend
           .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выделение ячеек в таблице Word через OLE
СообщениеДобавлено: Ср, июл 02 2014, 09:45 
Ассистент
Ассистент

Зарегистрирован:
Вт, июл 30 2013, 11:01
Сообщения: 32
Спасибо Вам огроменное! :D


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

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


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

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


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

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