我曾经使用过VBA,但从未使用它来抓取网站,所以我是新手。 我正在尝试使用VBA下班到我的SSRS网站,输入报告的日期并运行它。我已经尽力编写了代码,但是它一直在给我
运行错误时间91:未设置对象变量或带块变量。
下面是我的代码
Sub AgingReport()
Dim IE As New SHDocVw.InternetExplorerMedium
Dim HTMLDoc As MSHTML.HTMLDocument
Dim ReportDate As MSHTML.IHTMLElement
IE.navigate "www.example.com"
IE.navigate
IE.Visible = True
Application.Wait Now + #12:00:04 AM#
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Set HTMLDoc = IE.document
Set ReportDate = HTMLDoc.getElementById("ReportViewerControl_ctl04_ctl09_txtValue")
ReportDate.Value = "06/28/2019"
HTMLDoc.getElementById("ReportViewerControl_ctl04_ctl00").Click
End Sub
下面是HTML。请让我知道如何批准该代码。
HTML用于日期字段
<input name="ReportViewerControl$ctl04$ctl09$txtValue" class="null"
id="ReportViewerControl_ctl04_ctl09_txtValue" onkeypress="if
(WebForm_TextBoxKeyHandler(event) == false) return false;" onchange="javascript:setTimeout('__doPostBack(\'ReportViewerControl$ctl04$ctl09$txtValue\',\'\')', 0)" type="text" size="28">
以下是该按钮的HTML,该按钮已作为输入代码
<input name="ReportViewerControl$ctl04$ctl00" id="ReportViewerControl_ctl04_ctl00" type="submit" value="View Report">
答案 0 :(得分:0)
我更改了一些代码,并添加了一个HTML按钮元素
希望有帮助!
Sub AgingReport()
Dim IE As New SHDocVw.InternetExplorerMedium
Dim HTMLDoc As MSHTML.HTMLDocument
Dim ReportDate As MSHTML.IHTMLElement
Dim HtmlButton As MSHTML.IHTMLElement
IE.navigate "www.example.com"
IE.navigate
IE.Visible = True
Application.Wait Now + #12:00:04 AM#
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Set HTMLDoc = IE.document
Set ReportDate = HTMLDoc.getElementById("ReportViewerControl_ctl04_ctl09_txtValue")
ReportDate.Value = "06/28/2019"
Set HtmlButton = HTMLDoc.getElementById("ReportViewerControl_ctl04_ctl00")
HtmlButton.Click
End Sub