从 Excel 填写 Internet Explorer 表单
Posted
技术标签:
【中文标题】从 Excel 填写 Internet Explorer 表单【英文标题】:Filling Internet Explorer Forms from Excel 【发布时间】:2019-12-23 11:01:31 【问题描述】:我想在图片左侧的网站“选择选择器”部分填写信息。
网站
有一个元素名称“picker”,但它不起作用。
正在使用 jQuery 自动完成功能完成搜索栏,该自动完成功能提交了一个表单,该表单从自动完成框中导航到已选择的联系人
我试过了
IE.Document.All("picker").Value = "Testing"
IE.Document.GetElementByID("pickerCtrl.currentPicker").Value = "Testing"
IE.Document.GetElementsByClassName("input-group input-group-sm").Item(0).Value = "Testing"
附言。 有没有办法将行复制并粘贴到光标所在的当前位置?
我可以发送键标签 18 次以到达特定的搜索栏,但不知道如何从我的 Excel 工作表中插入整行。
例如。 IE.Document.all("picker").Value = ThisWorkbook.Sheets("Main_1").Range("B" & intRow).Value
我对此完全陌生。
【问题讨论】:
是否有公共网址可供测试? 不,很遗憾,该网站只能通过公司的笔记本电脑访问:( 【参考方案1】:尝试使用下面的示例进行测试可能有助于解决问题。
Sub demo1()
Dim i As Long
Dim URL As String
Dim IE As Object
Dim HWNDSrc As Long
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
URL = "D:\Backup20190913\tests\367.html"
IE.Navigate URL
Do While IE.ReadyState = 4: DoEvents: Loop
Do Until IE.ReadyState = 4: DoEvents: Loop
IE.Document.querySelector("[name='picker']").Value = "test value"
Stop
Set IE = Nothing
End Sub
HTML
<input class="form-control ng-valid ng-isolate-scope ng-touched ng-dirty" ng-model="pickerCtrl.currentpicker" name="picker" type="text" typeahead="" typeahead-source="pickerCtrl.getpickerStrings()" ng-disabled="pickerCtrl.errorLoadingPickers || pickerCtrl.noPickerstrings" ng-hide="pickerCtrl.disableTypeahead" autocomplete="off">
输出:
【讨论】:
感谢您的意见,但没有奏效。我输入的内容与您在上面所做的相同,收到错误消息“运行时错误”-2147023170 (800706be)' 自动化错误远程过程调用失败。 有没有办法将行复制并粘贴到光标所在的当前位置?我的意思是我可以发送键选项卡 18 次以到达特定的搜索栏,但不知道如何从我的 excel 表中插入整行...例如 IE.Document.all("picker").Value = ThisWorkbook. Sheets("Main_1").Range("B" & intRow).Value 您需要通知我们,您在哪一行得到了错误。此外,您关于传递整行 Excel 的逻辑也不正确。您需要遍历所有单元格并通过循环页面上的元素将值设置为网页上的相应元素。你不能在 1 行代码中做那件事。为此,您需要嵌套循环。外循环将遍历网页上的元素。内循环将遍历行的单元格。以上是关于从 Excel 填写 Internet Explorer 表单的主要内容,如果未能解决你的问题,请参考以下文章
Outlook 表单:从 Excel 导入/VLOOKUP 数据?