Что нового

Выбор значения в выпадающем списке

tyukas

Новичок
Сообщения
5
Репутация
0
Всем доброго времени суток.
Видимо полгода в декрете притупило мой мозг :stars: Подскажите, пожайлуйста.
Задача состоит в копировании данных из ячеек excel и заполнении определенной формы.
Необходимо выбрать значение в выпадающем списке, которое совпадает с скопированным из excel.
Копирую значение из экселя, записываю в переменную. Использую функцию
Код:
_IEFormElementGetObjByName

Если переменная числовая (поиск по индексу) - то все работает. Если текстовая - не находит... не могу понять почему?
Вот так работает: (в ячейке число)
Код:
#include <IE.au3>
WinActivate("[CLASS:XLMAIN]") ;открыть excel
Send("{Esc}") ;очистить буфер обмена
Sleep(500)
Send("^c") ;скопировать данные ячейки
Sleep(500)
$eTb = ClipGet()
WinActivate("[CLASS:IEFrame]")
$oIE = _IEAttach("Система ...", "Title")
$oForm = _IEFormGetCollection($oIE, 0) ; связь с формой
$oTb = _IEFormElementGetObjByName($oForm, "ctl00$ctl00$ctl00$MainContent$LeftContent$OfferContent$OrgNewDropDownList")


Select
	Case $eTb = 1 ;байкальский
		_IEFormElementOptionSelect($oTb, 1, 1, "byValue")
	Case $eTb = 2 ;волго-вятский
		_IEFormElementOptionSelect($oTb, 2, 1, "byValue")

EndSelect


Вот так нет: (в ячейке текст)
Код:
#include <IE.au3>
WinActivate("[CLASS:XLMAIN]") ;открыть excel
Send("{Esc}") ;очистить буфер обмена
Sleep(500)
Send("^c") ;скопировать данные ячейки
Sleep(500)
$eTb = ClipGet()
WinActivate("[CLASS:IEFrame]")
$oIE = _IEAttach("Система ...", "Title")
$oForm = _IEFormGetCollection($oIE, 0) ; связь с формой
$oTb = _IEFormElementGetObjByName($oForm, "ctl00$ctl00$ctl00$MainContent$LeftContent$OfferContent$OrgNewDropDownList")


Select
	Case $eTb = "байкальский" 
		_IEFormElementOptionSelect($oTb, "байкальский", 1, "byText")
	Case $eTb = "волго-вятский" 
		_IEFormElementOptionSelect($oTb, "волго-вятский", 1, "byText")

EndSelect


Причем, если написать
Код:
_IEFormElementOptionSelect($oTb, "байкальский", 1 , "byText")
то тоже все работает.
Т.е. проблема именно в строковой переменной. Хотелось бы, чтобы работало вот так:
Код:
_IEFormElementOptionSelect($oTb, $eTb, 1 , "byText")
НО не работает...
Подскажите, пожалуйста. Не дайте опозориться перед сотрудниками 8)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
tyukas [?]
Т.е. проблема именно в строковой переменной. Хотелось бы, чтобы работало вот так
Посмотрите, что будет в консоли, если добавить
Код:
;...
$eTb = ClipGet()
ConsoleWrite('>' & $eTb & '<' & @LF)
;..



Добавлено:
Сообщение автоматически объединено:

Попробуйте так:
Код:
;...
$eTb = ClipGet()
ConsoleWrite('>' & $eTb & '<' & @LF)
$eTb = StringRegExpReplace($eTb, '[\r\n]', '')
ConsoleWrite('>' & $eTb & '<' & @LF)
;...
 
Верх