2016-12-28 4 views
1

Проблема: Эй, я пытаюсь, из VBA, выбрать несколько значений в раскрывающемся списке на веб-странице.Выберите несколько значений в выпадающем списке на html через VBA

HTML-код выбора элемента

enter image description here

мне удалось выбрать этот элемент с objIE.document.getElementsByTagName("select")(0), так как это первый элемент с тэгом «Выбор» на всей странице.

Если я напишу objIE.document.getElementsByTagName("select")(0).Value= "E31", значение «E31» будет выделено в кадре, это нормально.

Но как я могу выбрать несколько значений?

Я попытался objIE.document.getElementsByTagName("select")(0).Value= "E31" + "E32" или objIE.document.getElementsByTagName("select")(0).Value= "E31" & "E32", но это не работает ...

EDIT: Кроме попыток: я в настоящее время пытается решить эту проблему с помощью команды SendKeys, где я нажимаю на один из элементов списка, а затем выберите другие элементы с помощью SendKeys «+ {DOWN 4}», который должен выбрать 4 элемента в списке под первоначальным выбранным.

'objIE.document.getElementsByTagName("select")(0).Children(8).Selected = True' If I activate this line it selects (= highlight) the 9th element of the list 
'objIE.document.getElementsByTagName("select")(0).Children(8).Click'if I activate this line it clicks on the 9th element of the list but doesn't highlight it 
SendKeys "+{DOWN 3}" 

К сожалению, это еще не работает. Более того, я не знаю, есть ли способ отправить ключ CTRL + MouseLeftClick так или иначе, как указано в here, но для команды Отправить, что недействительно в VBA.

Любые идеи?

+0

Что вы нашли с помощью поиска? Я нашел это (http://stackoverflow.com/questions/15191847/use-getelementbyid-on-htmlelement-instead-of-htmldocument) в течение минуты, например. Возможно, стоит подумать, можно ли использовать JavaScript. –

+0

Я только нашел сообщения, в которых человек пытается выбрать 1 значение, но не обсуждает, как выбирать значения mulitple в кодировке списка html из VBA. И я не вижу отношения со ссылкой, о которой вы говорили. – Seb

ответ

1

Хорошо, я нашел способ сделать это, довольно легко на самом деле.

With objIE.document.getElementsByTagName("select")(0) 
    .Children(23).Selected = True 
    .Children(56).Selected = True 
    .Children(98).Selected = True 
End With 

Эта команда будет выделить (выбрать) в 3 элемента

Смежные вопросы