2016-03-10 2 views
0

Я пытаюсь нажать кнопку на веб-странице, используя следующий код. По какой-то причине мой код пропускается до конца после строки «Для каждой». Любые предложения были бы замечательными! вот фрагмент моего кода:пытается щелкнуть кнопку на веб-странице с помощью vba

Dim htmldoc As MSHTML.IHTMLDocument 'Document object 
Dim htmlColl As MSHTML.IHTMLElementCollection 
Dim htmlInput As MSHTML.HTMLInputElement 

With ie 
      Set htmldoc = .document 
      Set htmlColl = htmldoc.getElementsByTagName("a") 
      Do While htmldoc.readyState <> "complete": DoEvents: Loop 
      For Each htmlInput In htmlColl **'it skips to End With after this line** 
       If Trim(htmlInput.ID) = "b2" Then 
        htmlInput.Click 
        Exit For 
       End If 
      Next htmlInput 
End With **'this is where it skips to** 

HTML:

<TD id=b2><A onclick="selectButton('b2');" 
onmouseover="window.status='Transoffering'; return true" 
onmouseout="window.status='View Transmission Offerings';return true" 
class=button 
href="/cgi-bin/webplus.dll?script=/woa/woa-transoffering-summary.wml" 
target=content>Offerings</A><TD> 
+2

Помогла бы опубликовать HTML-код для элемента, который вы пытаетесь щелкнуть. В любом случае 'htmldoc.getElementById (« b2 »). Нажмите« Заменить весь цикл ». –

+0

Привет, Тим, спасибо за ответ. Я попробовал «htmldoc.getElementById (« b2 »). Нажмите« но получить ошибку «91» или переменная блока не установлена. вот html: Offerings guice99

+0

жаль, что я новичок в этом, см. мой отредактированный оригинальный пост для более читаемого html .. – guice99

ответ

1

Идентификатор принадлежит td, а не a, но вы можете использовать его, чтобы получить по ссылке:

Редактирование: развернутый бит для ясности/отладки

Dim el 
Set el = htmldoc.getElementById("b2") 
If el Is Nothing Then 
    Debug.Print "id='b2' not found!" 
Else 
    el.getElementsByTagName("a")(0).Click 
End If 

Редактировать2: при использовании fr ames

Set el = htmldoc.frames("frameNameHere").document.getElementById("b2") 
+0

hmm, я пробовал как «td», так и «a», но получаю ту же ошибку .. »object переменная не установлена ​​". Кроме того, я установил htmldoc = .document. Любое дальнейшее предложение? Еще раз спасибо – guice99

+0

Смотрите мои править выше –

+0

спасибо, его возвращение как ничто! любые идеи, почему это может быть? – guice99

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