Текущее время: Чт, май 15 2025, 21:49

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: По екселевскому макросу составить код в абапе
СообщениеДобавлено: Пт, окт 07 2005, 14:56 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 21 2004, 16:30
Сообщения: 609
Пол: Мужской
Помогите создать код в абапе по макросу который копирует лист и вставляет его перед другим листом в EXCEL. Меня что то замкнуло.

Привожу макрос.
Sheets("Лист2").Select
Sheets("Лист2").Copy Before:=Sheets(3)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 15:49 
Гость
Немножко по-другому,
но нет временит смотреть :(

может, поможет

Code:
  CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
  SET PROPERTY OF H_EXCEL  'Visible' = 0.
  CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
  CALL METHOD OF H_MAPL 'Open'
    EXPORTING
    #1 = FILENAME.

  CALL METHOD OF H_EXCEL 'Worksheets' = H_SHEET
    EXPORTING
    #1 = 'Лист1'.
  CALL METHOD OF H_SHEET 'Activate'.

  CALL METHOD OF H_SHEET 'CELLS' = H_F.
  CALL METHOD OF H_F 'SELECT'.
  CALL METHOD OF H_F 'COPY'.

  CALL METHOD OF H_EXCEL 'SHEETS' = H_ZL.
  CALL METHOD OF H_ZL 'SELECT'.

  CALL METHOD OF H_EXCEL 'Worksheets' = H_SHEET
      EXPORTING
       #1 = 'Лист3'.
  CALL METHOD OF H_SHEET 'Activate'.
  CALL METHOD OF H_ZL 'ADD'.

  CALL METHOD OF H_EXCEL 'Worksheets' = H_SHEET
      EXPORTING
       #1 = 'Лист4'.
  CALL METHOD OF H_SHEET 'Activate'.
  CALL METHOD OF H_SHEET 'CELLS' = H_F.
  CALL METHOD OF H_F 'SELECT'.
  CALL METHOD OF H_SHEET 'PASTE'.

  SET PROPERTY OF H_EXCEL  'Visible' = 1.

  FREE OBJECT H_EXCEL.
  FREE OBJECT H_ZL.
  FREE OBJECT H_MAPL.
  FREE OBJECT H_SHEET.



Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 15:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
А можно просто вызвать этот макрос.
:shock:

Code:

FORM excel_run_macro
  USING
    i_name.

  CALL METHOD OF excel_application 'RUN'
    EXPORTING
      #1 = i_name.

  IF sy-subrc NE 0.
*   Не удалось вызвать указанную функцию/макрос
    sy-subrc = 4.
    EXIT.
  ENDIF.

ENDFORM.                    " excel_run_macro



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 15:59 
Гость
Voffka написал:
А можно просто вызвать этот макрос.
:shock:


Я думаю автор темы это умеет :)

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


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 16:04 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, ноя 09 2004, 11:38
Сообщения: 127
Пол: Мужской
РМщик написал(а):
Я думаю автор темы это умеет :)


Склеротик написал:
Меня что то замкнуло.


Мало ли, может действительно замкнуло. :shock: :roll: :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 16:10 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 21 2004, 16:30
Сообщения: 609
Пол: Мужской
нет, с запуском макросов не хотелось бы, безопасность настроена на персоналках у всех может быть по разному.

CALL METHOD OF sheets 'SELECT' exporting #1 = 'Лист2'.
код возврата = 0.
CALL METHOD OF sheets 'COPY' exporting #1 = 'Лист3'.
выдает код 2,


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 16:15 
Гость
ну так попробуй сначала добавить лист ADD,
а потом - COPY ... см выше :wink:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 07 2005, 16:24 
Гость
Лист то добавится а копирование то не идет.
Добавлять лист можно и spreadsheet-add_sheet.
И чего не добавили метод по копированию листа в перечень методов.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб, окт 08 2005, 00:10 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 13:16
Сообщения: 1790
Voffka написал:
А можно просто вызвать этот макрос.
:shock:

Можно всяко, но проще всего поиском воспользоваться: http://sapboard.ru/forum/viewtopic.php?t=4326


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 13:46 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 21 2004, 16:30
Сообщения: 609
Пол: Мужской
В коде приведенном в сообщении есть ошибка.
GET PROPERTY вместо CALL METHOD. Разобрался:)
Теперь вот как подавить диалого при удалении листа?
delete_sheet и через ОЛЕ метод выпрыгивает предупреждение что на удалямых листах могут быть данные.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 14:48 
Гость
Склеротик написал:
В коде приведенном в сообщении есть ошибка.
GET PROPERTY вместо CALL METHOD. Разобрался:)
Теперь вот как подавить диалого при удалении листа?
delete_sheet и через ОЛЕ метод выпрыгивает предупреждение что на удалямых листах могут быть данные.


set property of application 'DisplayAlerts' = 'false'.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 10 2005, 15:31 
Гость
Это я поставил раньше, но эффект тот же.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 11 2005, 10:12 
Гость
снимаю вопрос. Вместо удаления можно просто скрыть ненужные листы, установив свойство листа Visible = 0.


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

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


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

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


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

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