【问题标题】:IE ans Excel VBA - choose item from drop-down listIE ans Excel VBA - 从下拉列表中选择项目
【发布时间】:2017-07-06 18:32:02
【问题描述】:

我想登录网页,但没有成功,也找不到任何有用的教程、说明或建议。在此页面上:https://emir.palyazat.gov.hu/nd/eupalyazat/index.php?tip=100009&opid=9#login_jelzo 我想从列表中选择“GOP-2.1.3-11”(值:1950),然后会出现另一个(以前隐藏的)列表。从这个列表中,我必须选择 GOP-2.1.3-11-2011-0085(值:74347)。第一步我被下面的代码卡住了:

Sub IEopen()

Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection
Dim HTMLButton As MSHTML.IHTMLElement
Dim HTMLTable As MSHTML.IHTMLElement
Dim HTMLTables As MSHTML.IHTMLElementCollection
Dim HTMLRow As MSHTML.IHTMLElement

IE.Visible = True
IE.Navigate "https://emir.palyazat.gov.hu/nd/eupalyazat/index.php?tip=100009&opid=9#login_jelzo"

Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop

Set HTMLDoc = IE.Document

Set HTMLRow = HTMLDoc.getElementById("id_paly_altip")
HTMLRow.Value = "1950"
End Sub

我必须在该页面上管理更多帐户,单击按钮登录将非常容易????。

参考:Microsoft Internet Control、Microsoft HTML Object Library、Microsoft xml、v6.0 和 Microsoft_Jscript。

提前感谢您的帮助,如果您有关于在 VBA 中处理网页的全面描述,请也粘贴您的答案。非常感谢。

【问题讨论】:

  • 看看这些对象MSHTML.HTMLInputElementMSHTML.HTMLSelectElement
  • 我已将 do while 循环更改为 Application.wait。现在我可以选择“id_paly_altip”的值,但是下一个列表(palyazat_szama)没有出现。为什么?
  • 我不得不使用application.sendkeys,但最后还是成功了

标签: vba excel internet-explorer


【解决方案1】:

我不得不使用application.sendkeys,但最后还是成功了:

Set HTMLRow = HTMLDoc.getElementById("id_paly_altip")
HTMLRow.Value = "XXXXXXXXXXX"
Application.SendKeys ("{up}")
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys ("{down}")
Application.Wait (Now + TimeValue("0:00:01"))

Application.SendKeys ("{tab}")

Set HTMLRow = HTMLDoc.getElementById("palyazat_szama")
HTMLRow.Value = "XXXXXXXXXXXXX"
Application.SendKeys ("{up}")
Application.Wait (Now + TimeValue("0:00:01"))
Application.SendKeys ("{down}")
Application.Wait (Now + TimeValue("0:00:01"))

Set HTMLRow = HTMLDoc.getElementById("lb_felhasznalo")
HTMLRow.Value = "XXXXXXXXXXXXXXXX"

Application.SendKeys ("{tab 2}")
Application.SendKeys ("XXXXXXXXXXXXXXXXXXXXXXX")

Application.Wait (Now + TimeValue("0:00:01"))

Set HTMLButton = HTMLDoc.getElementById("login_submit")
HTMLButton.disabled = ""
HTMLButton.Click

Application.SendKeys "{NUMLOCK}%s"

End Sub

但是,我没有找到任何关于 IE 和 VBA 的全面描述。你能推荐一个吗?谢了

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2015-11-20
相关资源
最近更新 更多