如何通过Excel电子表格使用VBA循环,将值粘贴到网站表单然后提取结果返回?

我试图通过使用VBA的Excel电子表格中的名称列表进行循环,我希望将姓氏粘贴到网页的文本框中,然后在提交页面后将返回的电话号码提取到单元格中。

我一次只能做这个名字,所以我想自动化这个过程,因为有几百个。 我可以做Excel循环,但我不知道如何与网页互动。

任何人都可以帮忙,还是请指点正确的方向?

问候,伊恩。

这应该有所帮助。

举个例子,我使用了“networking”上的数百万个随机名称生成器之一。 这段代码打开一个IE实例,导航到“ http://www.behindthename.com/random/ ”,input姓氏到表单,提交表单,并返回生成的HTML主体。

我没有parsing结果页面的HTML返回实际的名称,因为这将是不同的您的网站,但这应该有助于你开始。

您将需要对“Microsoft Internet控件”的引用来访问SHDocVw.InternetExplorer对象。

Private Function GetFromSubmittedForm(strSurname As String) As String Dim strReturnBody As String 'Requires reference to "Microsoft Internet Controls"' Dim IE As SHDocVw.InternetExplorer Set IE = CreateObject("InternetExplorer.Application") 'Navigate to the URL' IE.Navigate "http://www.behindthename.com/random/" 'No need to show the window' IE.Visible = False 'Wait for IE to load the page' While IE.Busy: DoEvents: Wend Do While IE.ReadyState <> 4: DoEvents: Loop 'NOTE: I have refered to each element by name, but indexes _ can also be used: Forms("random") could be Forms(0)' 'Select the form by name:' With IE.Document.Forms("random") 'Reference each Input by name' .Surname.Value = strSurname 'Submit the form' .Submit 'Sometimes you may need to submit using _ the name of the submit button like this:' '.SubmitButtonName.Click' End With 'Wait for IE to load the new page' While IE.Busy: DoEvents: Wend Do While IE.ReadyState <> 4: DoEvents: Loop 'Set the body of the new page to a string' strReturnBody = IE.Document.Body.InnerHTML '/CODE THAT ANALYSES THE BODY HTML GOES HERE' GetFromSubmittedForm = strReturnBody '\CODE THAT ANALYSES THE BODY HTML GOES HERE' 'Close the IE doc' IE.Document.Close IE.Quit End Function 

希望这可以帮助。