VB单击按钮宏不起作用

时间:2014-03-05 23:33:08

标签: excel-vba vba excel

我正在尝试获取在屏幕上跟踪包的结果。在Excel中,我有这个代码,它成功打开IE浏览器并成功地将跟踪号输入到输入框中。什么不起作用是最后一步 - 按钮单击。我得到运行时错误91 - 对象变量或未设置块变量。提前谢谢。

Sub TrackUSPS()

Const cURL = "https://tools.usps.com/go/TrackConfirmAction!input.action" 'Enter the web address here
Const trackNum = "9405511899560005266920" 'Tracking number 

Dim IE As InternetExplorer
Dim doc As HTMLDocument
Dim LoginForm As HTMLFormElement
Dim TrackInputBox As HTMLInputElement
Dim TrackButton As HTMLInputButtonElement
Dim HTMLelement As IHTMLElement
Dim qt As QueryTable

Set IE = New InternetExplorer

IE.Visible = True
IE.navigate cURL

'Wait for initial page to load

Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop

Set doc = IE.document

'Get the tracking form on the page

Set LoginForm = doc.forms(1)

'Get the tracking input box and populate it
'<input type="text" id="search-text" autocomplete="off" name="searchText" class="default" value="Search USPS.com or Track Packages" onclick="javascript:dojo.byId('search-text').value='';"/>

Set TrackInputBox = LoginForm.elements("search-text")
TrackInputBox.Value = trackNum

'Get the form input button and click it
'<input type="image" id="search-btn" src="/media/images/global/blank.gif" alt="Process Search"  />

Set TrackButton = LoginForm.elements("search-btn")
TrackButton.Click

'Wait for the new page to load

Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop

End Sub

1 个答案:

答案 0 :(得分:2)

这适合我,替换         设置TrackButton = LoginForm.elements(“search-btn”)
        TrackButton.Click


        IE.document.getelementbyID( “搜索BTN”),点击