【发布时间】:2020-11-17 14:25:11
【问题描述】:
我正在尝试创建一个可以在网页上执行某些任务的宏。我正在努力的是从下拉列表中选择一个选项。
这是(部分)我的 VBA 代码:
Sub stackoverflow()
' ***** Dims for VBA *****
Dim objIE As SHDocVw.InternetExplorer
Dim ieDoc As MSHTML.HTMLDocument
Dim testURL As String
' ***** END *****
' ***** Dim Buttons*****
Dim StatusFld As MSHTML.HTMLInputElement
' ***** END *****
testURL = "https://test.com"
'Create Internet Explorer Object
Set objIE = New SHDocVw.InternetExplorer
'Navigate to URL
objIE.navigate testURL
'Wait until page has loaded up
Do Until objIE.readyState = READYSTATE_COMPLETE: Loop
'Get document object
Set ieDoc = objIE.document
objIE.Visible = True
'***** Button IDs *****
Set statusFld = ieDoc.all.Item("apprverStatusCode")
'***** END *****
'THIS IS THE ROW WITH THE ERROR:
objIE.document.getElementById(statusFld).Value = "Rejected"
所以使用上面的代码,我得到“运行时错误'424' - 需要对象”。
我也试过这个,也没有成功:
statusFld.Value = "Rejected"
这是网站的源代码:
<select id="apprverStatusCode" data-code="GROUP_STATUS" data-servicecode="{"preview":"20501","download":"20502"}"
>
<option value="ALL">All</option>
<option value="Rejected">Rejected</option>
<option value="Approved">Approved</option>
</select>
任何想法为什么这不起作用?
【问题讨论】:
-
getElementById 需要一个 id 而不是一个对象。
标签: javascript excel vba internet-explorer