2017-01-12 19 views
0

Я новичок здесь, и я пытаюсь написать сценарий VBA Excel для автоматизации ввода форм для внешнего веб-сайта. На веб-сайте используется додзё, и я использую IE11. Есть ли способ интегрировать excel vba в dojo?Обновлено - Excel VBA tojojo - изменение выпадающего списка

У меня возникли проблемы с изменением раскрывающегося списка состояний в моих желаемых состояниях с использованием свойства selectedIndex элемента select. Я также попробовал execScript, чтобы попытаться использовать Javascript для вызова функций dojo. Я могу изменить поля ввода (ввод полей). Я просмотрел весь этот форум для ответа, но ничего не сработало. Может ли кто-нибудь помочь?

коды Я попытался

IE.document.currentWindow.execScript code:="dijit.getID('state').set('value','TEXAS');" //returns 80020101 error 

IE.document.currentWindow.execScript code:="dojo.eval(dijit.getID('state').set('value','TEXAS'));" //returns 80020101 error 

IE.document.getElementById("state").Focus 
IE.document.getElementById("state").value = "NEW YORK" 
IE.document.getElementById("state").FireEvent ("onchange") 

IE.document.getElementById("state").Focus 
IE.document.getElementById("state").selectedIndex = 29 
IE.document.getElementById("state").FireEvent ("onchange") 

С сайта

<div> 
<label for="state" id="state_label" class="showHints">State for withholding</label> 
<div><select id="state" name="state" data-dojo-type="dijit.form.FilteringSelect"><option value="ALABAMA">Alabama</option>  <option value="ALASKA">Alaska</option><option value="ARIZONA" selected="selected">Arizona</option><option value="ARKANSAS">Arkansas</option><option value="CALIFORNIA">California</option><option value="COLORADO">Colorado</option><option value="CONNECTICUT">Connecticut</option><option value="DELAWARE">Delaware</option><option value="FLORIDA">Florida</option><option value="GEORGIA">Georgia</option><option value="HAWAII">Hawaii</option><option value="IDAHO">Idaho</option><option value="ILLINOIS">Illinois</option><option value="INDIANA">Indiana</option><option value="IOWA">Iowa</option><option value="KANSAS">Kansas</option><option value="KENTUCKY">Kentucky</option><option value="LOUISIANA">Louisiana</option><option value="MAINE">Maine</option><option value="MARYLAND">Maryland</option><option value="MASSACHUSETTS">Massachusetts</option><option value="MICHIGAN">Michigan</option><option value="MINNESOTA">Minnesota</option><option value="MISSISSIPPI">Mississippi</option><option value="MISSOURI">Missouri</option><option value="MONTANA">Montana</option><option value="NEBRASKA">Nebraska</option><option value="NEVADA">Nevada</option><option value="NEW_HAMPSHIRE">New Hampshire</option><option value="NEW_JERSEY">New Jersey</option><option value="NEW_MEXICO">New Mexico</option><option value="NEW_YORK">New York</option><option value="NORTH_CAROLINA">North Carolina</option><option value="NORTH_DAKOTA">North Dakota</option><option value="OHIO">Ohio</option><option value="OKLAHOMA">Oklahoma</option><option value="ORGEON">Oregon</option><option value="PENNSYLVANIA">Pennsylvania</option><option value="RHODE_ISLAND">Rhode Island</option><option value="SOUTH_CAROLINA">South Carolina</option><option value="SOUTH_DAKOTA">South Dakota</option><option value="TENNESSEE">Tennessee</option><option value="TEXAS">Texas</option><option value="UTAH">Utah</option><option value="VERMONT">Vermont</option><option value="VIRGINIA">Virginia</option><option value="WASHINGTON">Washington</option><option value="WEST_VIRGINIA">West Virginia</option><option value="WISCONSIN">Wisconsin</option><option value="WYOMING">Wyoming</option><option value="WASHINGTON_DC">Washington DC</option><option value="PUERTO_RICO">Puerto Rico</option><option value="AMERICAN_SAMOA">American Samoa</option><option value="GUAM">Guam</option><option value="NORTHERN_MARIANA_ISLANDS">N. Mariana Islands</option><option value="US_VIRGIN_ISLANDS">US Virgin Islands</option></select></div> 

+0

Является ли значение изменения комбо? –

+0

значение изменяется, когда я пытаюсь использовать свойство .value. но когда я передаю переданное значение формы, все еще остается первым, что неверно. когда я использую свойство selectedindex, я получаю ошибку «объект не поддерживает это свойство или метод». – jyp38

+0

плохо взгляните, можете ли вы указать URL-адрес? –

ответ

0

Это должно помочь, числовое значение для SelectedIndex. Извините, если бы я заметил, что, конец дня для меня :)

Sub x() 

Dim i As SHDocVw.InternetExplorer 
Dim s As MSHTML.HTMLSelectElement 
Dim e As MSHTML.IHTMLElement 

Set i = New SHDocVw.InternetExplorer 
i.Visible = 1 
i.navigate "http://www.paycheckcity.com/calculator/salary/" 

While i.Busy Or i.readyState <> READYSTATE_COMPLETE 
    DoEvents 
Wend 

Set s = i.document.getElementById("state") 
s.selectedIndex = 11 

While i.Busy Or i.readyState <> READYSTATE_COMPLETE 
    DoEvents 
Wend 

s.form.submit 

End Sub 
+0

благодарим вас за помощь, но я все еще получаю ошибку «объект не поддерживает это свойство или метод». Я использую IE11, это влияет на что-либо? Кроме того, когда я тестирую i.document.getElementById («state»). TagName возвращает его как «INPUT», а не «SELECT». Я не уверен, почему, но именно поэтому selectedIndex не работает? – jyp38