使用VBAinput数据

我正在尝试使用VBA在一些HTML页面上提交数据。 HTML页面包含一些Java脚本,它是一个受保护的页面。

我试图使用下面的代码,但它只打开网站窗口,并没有填写任何文字在页面上。

我知道我仍然需要添加代码login名/密码valification,msgbox(停止控制),提交button点击代码。

有人可以帮忙吗?

Sub Tes() Dim IE As Object Dim TrackID As Object Set IE = CreateObject("InternetExplorer.Application") IE.navigate "https://abcxxx.com/xxxx/xxxxxxx/Pages/CustInfo.aspx" IE.Visible = True Do Until IE.readystate = 4: DoEvents: Loop Set TrackID = IE.document.getelementbyid("abc00_abc001_234_5678_81b0_txtCustomerNo") TrackID.Value = Range("A2").Value TrackID.form.submit End Sub 

:::标题信息:::

 <head id="ctl00_HEAD1"></head> <body onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();" scroll="yes"> <form id="xxxForm" onsubmit="javascript:return WebForm_OnSubmit();" action="/xxxx/xxxxxxx/Pages/CustInfo.aspx" method="post" name="xxxForm"> <div></div> <script type="text/javascript"></script> <script type="text/javascript" src="/WebResource.axd?d=l9_fanifTkSGPMjqQJxGzkhm0A9CUTq0e2fMvidi8…mlhiyeYfbecR_SY_yD1HlOp8dnx1WI0dTdidvw1&t=634605258709717464"></script> <script></script> <script language="JavaScript" type="text/JavaScript"></script> <script></script> <script type="text/javascript" src="/WebResource.axd?d=wAwuGCcAd8-EEHMrxtDWcHPpbrIz4dtxvSld4vGrJ…1WyuhxU_XTb_KI5FuNTSBKr7UJL75sqY7cXp281&t=634605258709717464"></script> <script type="text/javascript" src="/WebResource.axd?d=zXhglhR5yBgSmErqplHM82fD2Jq9gJIaO6HzhlL5E…MnKMvLQ-2WyEUUcPnCWpgOMpxqYDqDmsApddeA1&t=634605258709717464"></script> <script type="text/javascript"></script> 

你已经编辑了实际的网站地址,所以没有人能真正发现你做错了什么。 但你的方法似乎很好 – 相同的代码适用于另一个网站上的我:

 Sub main() Dim IE As Object Dim TrackID As Object Set IE = CreateObject("InternetExplorer.Application") IE.navigate "http://www.wikipedia.org/" IE.Visible = True Do Until IE.readystate = 4: DoEvents: Loop Set searchInput = IE.document.getelementbyid("searchInput") searchInput.Value = "Visual Basic for Applications" searchInput.form.submit End Sub 

你有一个forms与编辑名称xxxForm 。 如果您希望设置值的所有input元素都是此表单的子元素,则将对象设置为表单并将其用作父表单。

我更喜欢使用Microsoft HTML元素声明。 您可能需要将VBE的工具►参考Microsoft Internet控件Microsoft HTML对象库添加到您的项目中。

 Sub Tes() Dim IE As new SHDocVw.InternetExplorer Dim eTrackForm As MSHTML.IHTMLElement Set IE = CreateObject("InternetExplorer.Application") IE.navigate "https://abcxxx.com/xxxx/xxxxxxx/Pages/CustInfo.aspx" IE.Visible = True IE.Silent = True Do while ie.busy or IE.readystate <> 4: DoEvents: Loop Set eTrackForm = IE.document.getelementbyid("xxxForm") if not eTrackForm is nothing then with eTrackForm .getelementbyid("ID_of_the_name_input").value = "Me" .getelementbyid("ID_of_the_password_input").value = "MyPass" .getelementbyid("abc00_abc001_234_5678_81b0_txtCustomerNo").value = Sheets("Sheet1").Range("A2").Value .submit end with end if End Sub 

这看起来应该让你通过第一个凭证input表单,一旦你改变了我的通用凭证和input元素ID到实际的。 这里没有什么不可思议的。 实际上,在这里提交的代码或其他代码作为可能的解决scheme之间几乎没有什么区别。