Попытка заставить html Dropbox (2 шага) работать с кодом VBA - PullRequest
0 голосов
/ 10 февраля 2019

Попытка заставить Dropbox работать из кода VBA, но кажется, что он имеет два этапа, прежде чем открывается окно.(Как и при аутентификации, отображается окно с раскрывающимся списком, так что вы можете выбрать его и вставить его в поле. Но все это в одном раскрывающемся списке, но я думаю, что сторона аутентификации скрыта. Я могу заставить базовый Dropbox работать синдексы, но этот меня озадачил. Я не совсем понимаю, как довольно новую для VBA> HTML сторону.

Но я понимаю, что "SchProgramID" - это код аутентификации или фильтра, после того как он получил, что"TrainerId" откроется, чтобы дать вам выбранные имена, которые фильтруются в поле по мере ввода, или вы можете быть выбраны с помощью мыши из списка.

Я даже не могу сфокусироваться на них.

Может кто-нибудь помочь мне?

HTML-код с сайта выглядит следующим образом:

                    <div class="form-group">
                        <label class="control-label col-md-2" for="TrainerId">Trainor</label>
                        <div class="col-md-8">


                            <select class="form-control chosen-select" data-live-search="true" data-val="true" data-val-number="The field Trainor must be a number." data-val-required="The Trainor field is required." id="TrainerId" name="TrainerId"><option value="">Select Trainor</option>
<option value="176">Undrico Divina Corpuz Jr.</option>
<option value="204">Domingo Bagadiong Go Jr.</option>
<option value="1200">Marnilo Sayson Sugano </option>
<option value="1238">Dexter Gaoiran Tomas </option>

Код, с которым я играл

'Dim fromSelect, fromSelect1 As HTMLSelectElement
'Dim evt, evt1 As Object
'Set evt = htmlDoc.createEvent("HTMLEvents")
'Set evt1 = htmlDoc.createEvent("HTMLEvents")
'evt.initEvent "change", True, False
'evt1.initEvent "change", True, False
'Set fromSelect = htmlDoc.getElementById("SchProgramId")
'OptionValue = "14526"
'If optionIndex >= 0 Then
'    fromSelect.selectedIndex = OptionValue
'    fromSelect.dispatchEvent evt
'Set fromSelect1 = htmlDoc.getElementById("TrainerId")
'OptionValue = "9570"
If optionIndex >= 0 Then
'    fromSelect.selectedIndex = OptionValue
'    fromSelect.dispatchEvent evt1
end if

1 Ответ

0 голосов
/ 10 февраля 2019

Мне не совсем ясно, какова роль SchProgramId в настоящее время.

Для отображения раскрывающегося списка вы должны иметь возможность использовать:

ie.document.getElementById("TrainerId").Click

Для выбора элементов в раскрывающемся списке вы должны бытьвозможность указать атрибут value по его значению, например, 1421 для первого тренера (или по индексу)

ie.document.querySelector("#TrainerId option[value='1421']").Selected = True

Пример использования индекса:

ie.document.querySelector("#TrainerId").selectedIndex = 2
...