У меня есть код VBA, который смешивает SAPScript и VBA.Обычно я использую транзакцию SAP и экспортирую ее в виде таблицы Excel, после того как я нажимаю кнопку экспорта, она запрашивает место для сохранения.
Я записал сценарий с помощью SAP и вставил его в VBA
Шаги:
- Нажмите кнопку для экспорта (SAP)
(очевидно, нет кода, который включает окно «Сохранить как ...»), пользователь должен взаимодействовать)
Нажмите кнопку, чтобы вернуться на главную страницу (SAP)
Задать имя открытой рабочей книге, чтобы я мог работать с ней
Проблема в том, что если я запускаю код, он не работает.Это похоже на то, что код не ждет, пока книга откроется, чтобы идти дальше.
Я попытался:
- Добавление времени для кода VBA для ожидания
- Добавление строк (например, MsgBox) между событиями
session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[1]").Select '(Step 1)
session.findById("wnd[0]/tbar[0]/btn[3]").press '(Step 2)
session.findById("wnd[0]/tbar[0]/btn[3]").press '(Step 2)
Set Book = ActiveWorkbook '(Step 3)
Set Sheet = ZMMBBook.Worksheets("Sheet1") '(Step 3)
Ожидается, что рабочая книга установлена, но вместо этого код запускается до ее открытия.Даже попытка добавить время между ними не работает, это похоже на то, что он открывается только после того, как он прогрессирует, но когда он прогрессирует, рабочая книга не открывается, поэтому это приводит к ошибке «Subscript Out of Range».
Если я вставлю точку останова в строку «Установить», откроется рабочая книга, и если я продолжу, код работает нормально.
Я бы хотел найти решение:
A WayВставить строки кода, которые делают код «ломающимся», как если бы он находился в точке останова (но плавно, чтобы конечный пользователь мог ее использовать)
Способ взаимодействия в SAPScript с окном сохранения(потому что я бы сказал, что кажется, что это и является причиной ошибки)
Любое другое решение
Спасибо всем!