如何提交表单数据excel vba

我尝试input包裹编号:220022400803300并试图获得结果,但即使将包裹ID放入search框并单击提交button,也不会返回结果。

任何人都可以请帮助我,如果还有更好的方法来做到这一点,请让我知道。

该网站是http://eringcapture.jccal.org/caportal/CAPortal_MainPage.aspx访问该网站后,我点击Search your Real Property. Click Here. Search your Real Property. Click Here. 在页面底部,然后我selectparcel #单选button,并将包裹id号码220022400803300,并点击Searchbutton,但它没有find结果发现,而手动做它给1结果。

 Option Explicit Option Compare Text Dim fRD As Long, i As Long, fSR As Long, j As Long Dim pID As String Dim IE As SHDocVw.InternetExplorer Dim Doc As MSHTML.HTMLDocument Dim urL As String Dim fnd As Boolean Sub genOP() With RD fRD = .Range("A" & .Rows.Count).End(xlUp).Row Set IE = New SHDocVw.InternetExplorer urL = "http://eringcapture.jccal.org/caportal/CAPortal_MainPage.aspx" For i = 2 To 2 fSR = SR.Range("A" & SR.Rows.Count).End(xlUp).Row + 1 pID = Trim(Format(.Range("A" & i).Value, "0")) ' get PID If Len(pID) < 8 Then GoTo nextRow IE.Visible = True IE.navigate urL Call WaitForIE Set Doc = IE.document Doc.getElementById("Iframe1").contentDocument.getElementById("RealSearchLink").Click Call WaitForIE Doc.getElementById("Iframe1").contentDocument.getElementById("SearchByParcel").Checked = True 'SearchByTB 'Delete the first 2 digits from the excel data (parcel ID), eg 22002240080330000000 (instead of 0122002240080330000000) 'pID = Right(pID, Len(pID) - 2) Doc.getElementById("Iframe1").contentDocument.getElementById("SearchText").Value = pID 'Put id in text box Doc.getElementById("Iframe1").contentDocument.getElementById("Search").Click 'search button Call WaitForIE fnd = False If Trim(Doc.getElementById("Iframe1").contentDocument.getElementById("TotalRecFound").innerText) = "No Records Found." Then For j = 1 To 6 pID = Left(pID, Len(pID) - 1) Doc.getElementById("Iframe1").contentDocument.getElementById("SearchText").Value = pID 'Put id in text box Doc.getElementById("Iframe1").contentDocument.getElementById("Search").Click 'search button Call WaitForIE If Trim(Doc.getElementById("Iframe1").contentDocument.getElementById("TotalRecFound").innerText) <> "No Records Found." Then 'Result Found Stop fnd = True Exit For End If Next j Else 'Result Found Stop fnd = True End If If Not fnd Then SR.Range("A" & fSR) = "No Records Found" End If nextRow: Next i IE.Quit Set IE = Nothing End With MsgBox "Process Completed" End Sub Sub WaitForIE() While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE DoEvents Wend Application.Wait Now + TimeValue("00:00:05") End Sub 

页面上有一个隐藏的Pid,其string格式不同。

添加到您的代码:

  'SearchByTB 'Delete the first 2 digits from the excel data '(parcel ID), eg 22002240080330000000 (instead of 0122002240080330000000) 'pID = Right(pID, Len(pID) - 2) 'Creating an hidden pid with string format like this: 22 00 22 4 008 033.00 hiddenPID = Left(pID, 2) & " " & _ Mid(pID, 3, 2) & " " & _ Mid(pID, 5, 2) & " " & _ Mid(pID, 7, 1) & " " & _ Mid(pID, 8, 3) & " " & _ Mid(pID, 11, 3) & "." & _ Mid(pID, 14, 2) Doc.getElementById("Iframe1"). _ contentDocument.getElementById("SearchText"). _ Value = pID 'Put id in text box Doc.getElementById("Iframe1"). _ contentDocument.getElementById("HidParcelNo"). _ Value = hiddenPID 'Put hidden pID in the hidden element Doc.getElementById("Iframe1"). _ contentDocument. _ getElementById("Search").Click 'search button 

只需单击search框即可查看POST请求。