我在 Outlook 中有一个带有自定义表单的宏。我应该能够启动一个网站并将该值输入到启动的 IE 页面的文本字段中。
例如:代码应该能够打开https://idea.ca ,一旦启动,它应该在文本字段中输入值“1234”。
DOM Explorer: 手动输入时,输入字段名称如下所示。
我能够启动网站,但无法在特定文本字段中输入值。
Dim appIE As InternetExplorerMedium
Set appIE = Nothing
Dim objElement As Object
Dim ObjCollection As Object
Dim varResults As New DataObject
varResults.SetText "1234"
varResults.PutInClipboard
Set appIE = New InternetExplorerMedium
sURL = "http://acf2prod/WebAdminr15/pages/vantage.jsf"
With appIE
.navigate sURL
.Visible = True
End With
Do While appIE.Busy Or appIE.readyState <> 4
DoEvents
Loop
Set ObjCollection = appIE.document.getElementsByTagName("input")
Set appIE = Nothing
With ObjCollection.document
.getElementById("inputTextId").Value = varResults.GetText(1)
End With
获取错误“对象不支持此属性或方法。
最佳答案
这个
ObjCollection.document
将不起作用:集合的属性有限,并且 .document
不是 HTMLElementCollection/DispHTMLElementCollection 的属性或方法(因为您是声明延迟绑定(bind))。例如,它是 InternetExplorer 的一个属性。
简单的任务发生了什么?您应该能够直接分配(或使用剪贴板中的分配尝试以下左侧)
appIE.document.getElementById("mdForm:commandLineID:inputTextId").value = "1234"
关于javascript - 使用 vba 应用程序在 IE 中的文本字段中输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56189724/