Добрый день. Помогите, пожалуйста, создать код для чтения и копирования на лист Excel фрагмента текста из окна программы. Нужно скопировать "100000021" и вставить в файл "БАЗА" на лист "ДАННЫЕ" в ячейку "К3". Код который я смог придумать для выделения текста не работает (выделен цветом). Из выделенного цветом кода работают только открыть и закрыть окно в программе (первая и последняя строка выделенная цветом. ) А как вставить на лист пока идей вообще нет. Только начинаю изучать VBA Заранее спасибо.
Mershik, я прикрепил скрин экрана и задачу описал как смог. Могу еще подробнее описать. В программе САП выполняется скрипт который запускается макросом. Он делает все необходимые действия и в конце, с помощью команды session.findById("wnd[0]/sbar").DoubleClick открывается окно с номером проведенного документа "100000021". Это окно содержит и другой текст (видно на скрине) мне нужно скопировать только "100000021" и вставить в файл "БАЗА" на лист "ДАННЫЕ" в ячейку "К3". После этого командой session.findById("wnd[0]/shellcont").Close это окно закрывается.
Evgenii Kov, ну и ждите ответа на картинках или азбуке морзе из правил
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе. 2.4. Не прикладывайте файлы-примеры с персональными данными, конфиденциальной информацией, коммерческой или государственной тайной! Яндекс и Google не спят - проиндексируют ваши данные и привет - они попадут в открытый доступ. И даже удаление темы потом не поможет.
Mershik, не могу понять чем может помочь файл без всплывающего окна из программы САП. я надеялся на хоть примерный код который потом сам смогу доделать. я это вижу так (глупо, но как могу) 1. session.findById("wnd[0]/sbar").DoubleClick - открылось окно в программе САП (эта часть работает) 2. например. в открытом окне копировать текст который находится между словами "Документ"-"проведено" и/или копировать текст, в первой строке, расположенный между: с лева 9 символов, с права 20 символов. 3. вставить в файл "БАЗА" на лист "ДАННЫЕ" в ячейку "К3". 4. session.findById("wnd[0]/shellcont").Close закрыть окно в программе САП (эта часть работает)
Evgenii Kov написал: Из выделенного цветом кода работают только открыть и закрыть окно в программе (первая и последняя строка выделенная цветом. )
А остальные? Просто выполняются без видимых изменений на листе или код останавливается и всплывает окно об ошибке? Что в окне написано? Что такое objSBar и чему равен iRow ? Почему нужно скопировать "100000021"? М.б. проще просто вбить везде это самое "100000021"? Или Вам нужно скопировать нечто в соответствии с определенными условиями? Всё. Не могу пробиться к Вам в мысли. Наверно я плохой экстрасенс.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Все, что в вашем коде работает, относится не к Excel, а к объектной модели неизвестной САП. И как вы себе представляете "допилить"? Поди туда, не знаю куда, принеси то, не знаю что?
Михаил Лебедев, проблема только с выделенной частью кода. остальное это скрип для САПа (программа для ведения учета на предприятии) Код "100000021" это номер который присваивается в программе после проведения проводки, на его основе должна делаться следующая операция. Он каждый раз новый. Увидеть его можно только в окне которое открывается командой "session.findById("wnd[0]/sbar").DoubleClick" Из этого окна его нужно выделить, скопировать, вставить в эксель (это нужно для отчета) и потом скопировать в следующую операцию.
session.findById("wnd[0]/sbar").DoubleClick 'это специфическая часть скрипта. открывает окно с данными в программе Cells(1, 1) = objSBar.Text 'выделяет весь текст в открытом окне и вставляет его в ячейка А1 активного листа, открытой книги. Cells(1, 1) = Right(Left(objSBar.Text, 19), 10) 'в ячейке А1 удаляет необходимое количество символов с правой и левой стороны. session.findById("wnd[0]/shellcont").Close 'это специфическая часть скрипта. закрывает окно с данными в программе