我使用Access VBA打开Internet Explorer并在网站上填写表单。 此表单具有自动编号的ID,该编号每隔一段时间就会更改,但是" _id"如下所示总是相同的,我不确定是否或如何使用" _id"将值插入该字段
到目前为止,这是我所拥有的,感谢蒂姆 即时通讯我不确定这个网站究竟是如何工作的,因为我现在已经相当新了,但这是我到目前为止,关于Radio Buttons的最后一个问题Dim ie As InternetExplorer
Dim url As String
Dim htmlDoc As MSHTML.HTMLDocument ' html object lib
Dim htmlInputElemen As MSHTML.HTMLInputElement
Dim htmlElementCol As MSHTML.IHTMLElementCollection
url = www.abc.com
ie.navigate url
‘ this is for text box
Set htmlDoc = ie.Document
Set htmlElementCol = htmlDoc.getElementsByTagName("INPUT")
For Each htmlInputElemen In htmlElementCol
If htmlInputElemen.getAttribute("title") = "myTitle" Then
htmlInputElemen.Value = “myTitle”
' ElseIf htmlInputElemen.getAttribute("title") = "myTitle2" Then
htmlInputElemen.Value = “myTitle2”
End If
Next htmlInputElemen
‘ this is for combo box
Set htmlElementCol = htmlDoc.getElementsByTagName("select")
Dim htmlSelectElem As MSHTML.HTMLSelectElement
For Each htmlSelectElem In htmlElementCol
If htmlSelectElem.getAttribute("title") = "myComboBox" Then
htmlSelectElem.Value = “myComboBoxValue”
End If
Next htmlSelectElem
‘now I have radio buttons which im not sure how to click using title, any ideas?
I tried this but no luck
Set htmlElementCol = htmlDoc.getElementsByTagName("span")
Dim htmlSpanElem As MSHTML.HTMLSpanElement
For Each htmlSpanElem In htmlElementCol
If htmlSpanElem.getAttribute("title") = “ABC” Then
htmlSpanElem.Click
End If
Next htmlSpanElem
<span class="ms-RadioText" title="ABC">
<input id="234sd87s89df">
<label for="234sd87s89df ">ABC</label>
答案 0 :(得分:1)
Dim inputs, el
Set inputs = document.getElementsByTagName("input")
For Each el In inputs
If el.getAttribute("_id") = "R_Destination" Then
el.Value = "myValue"
Exit For
End If
Next el
编辑:这是与函数重构相同的代码
Function GetElement(doc as object, tagName As String, attrName As String, _
attrValue As String) As Object
Dim rv As Object
Dim elements, element
Set inputs = doc.getElementsByTagName(tagName)
For Each element In elements
If element.getAttribute(attrName) = attrValue Then
Set rv = element
Exit For
End If
Next element
Set GetElement = rv
End Function
用法:
Dim el
Set el = GetElement(document, "input", "_id", "R_Destination")
if not el is nothing then el.value = "myValue"