Текущее время: Пт, июл 25 2025, 16:03

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


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

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


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

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