Страницы: 1
RSS
Выделить и скопировать текст с помощью VBA, Выделить и скопировать текст с помощью VBA
 
Добрый день. Помогите, пожалуйста, создать код для чтения и копирования на лист Excel фрагмента текста из окна программы. Нужно скопировать "100000021" и вставить в файл "БАЗА" на лист "ДАННЫЕ" в ячейку "К3". Код который я смог придумать для выделения текста не работает (выделен цветом). Из выделенного цветом кода работают только открыть и закрыть окно в программе (первая и последняя строка выделенная цветом. )  А как вставить на лист пока идей вообще нет. Только начинаю изучать VBA
Заранее спасибо.
Изменено: Evgenii Kov - 29.10.2020 11:55:03
 
Evgenii Kov, вот как вы видите помощь вам? без файлов примера? без исходных данных?  без описания задачи что конкретно нужно и почему и куда?
Не бойтесь совершенства. Вам его не достичь.
 
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 - 29.10.2020 12:17:39
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, не могу понять чем может помочь файл без всплывающего окна из программы САП.
я надеялся на хоть примерный код который потом сам смогу доделать.
я это вижу так (глупо, но как могу)
1. session.findById("wnd[0]/sbar").DoubleClick   -  открылось окно в программе САП (эта часть работает)
2. например. в открытом окне копировать текст который находится между словами "Документ"-"проведено" и/или копировать текст, в первой строке, расположенный между: с лева 9 символов, с права 20 символов.
3. вставить в файл "БАЗА" на лист "ДАННЫЕ" в ячейку "К3".
4. session.findById("wnd[0]/shellcont").Close    закрыть окно в программе САП  (эта часть работает)
Изменено: Evgenii Kov - 29.10.2020 12:56:37
 
Цитата
Evgenii Kov написал:
примерный код
Код
[K3] = Mid(objSBar.Text, 10, 9)
Изменено: Mershik - 29.10.2020 12:47:43
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо, но что то ничего не происходит. не выделяется, не копируется.  
 
может кто то может мой примерный код "допилить"

session.findById("wnd[0]/sbar").DoubleClick
objSheet.Cells(iRow, 20) = objSBar.Text
objSheet.Cells(iRow, 20) = Right(Left(objSBar.Text, 19), 10)
session.findById("wnd[0]/shellcont").Close
 
Цитата
Evgenii Kov написал:
Из выделенного цветом кода работают только открыть и закрыть окно в программе (первая и последняя строка выделенная цветом. )
А остальные? Просто выполняются без видимых изменений на листе или код останавливается и всплывает окно об ошибке? Что в окне написано?
Что такое objSBar и чему равен iRow ?
Почему нужно скопировать "100000021"? М.б. проще просто вбить везде это самое "100000021"? Или Вам нужно скопировать нечто в соответствии с определенными условиями?
Всё. Не могу пробиться к Вам в мысли. Наверно я плохой экстрасенс. :(
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Все, что в вашем коде работает, относится не к Excel, а к объектной модели неизвестной САП.
И как вы себе представляете "допилить"?
Поди туда, не знаю куда, принеси то, не знаю что?
 
Михаил Лебедев, проблема только с выделенной частью кода. остальное это скрип для САПа (программа для ведения учета на предприятии)
Код "100000021" это номер который присваивается в программе после проведения проводки, на его основе должна делаться следующая операция. Он каждый раз новый. Увидеть его можно только в окне которое открывается командой "session.findById("wnd[0]/sbar").DoubleClick" Из этого окна его нужно выделить, скопировать, вставить в эксель (это нужно для отчета) и потом скопировать в следующую операцию.
 
RAN, я вообще все это представляю с большим трудом !! только недавно начал осваивать VBA
именно по этому прошу помощи  
 
Вдруг кому интересно или пригодится.

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  'это специфическая часть скрипта. закрывает окно с данными в программе
Страницы: 1
Наверх