excel - 使用 Excel VBA 在 Internet Explorer 中自动填写表单
问题描述
我想从 excel 表中获取值并将它们存储在一个数组中。然后我想从数组中获取值并使用它们来填写 Web 表单。
我设法将值存储在数组中,并且我设法让 VBA 打开 Internet Explorer (IE)
代码运行并且没有出现错误,但没有填充文本字段,也没有单击按钮
(调试器指向[While .Busy]
错误源,位于WITH
块中)
我该如何填写表格(总共需要填写 3 个文本框)?
还有一个下拉菜单,我需要从中选择一个值,但在继续执行该部分任务之前,我需要填写文本框。
Sub CONNECT_TO_IE()
the_start:
Dim ie As Object
Dim objElement As Object
Dim objCollection As Object
acct = GET_CLIENT_NAME()
name = GET_CODE()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate ("<<my_website>>")
ie.FullScreen = False
On Error Resume Next
Do
DoEvents
If Err.Number <> 0 Then
ie.Quit
Set ie = Nothing
GoTo the_start:
End If
Loop Until ie.readystate = 4
Application.Wait Now + TimeValue("00:00:10")
ie.Document.getElementbyid("<<field_1>>").Value = "PPP"
ie.Document.getElementbyid("<<field_2>>").Value = "PPP"
ie.Document.getElementbyid("<<field_3>>").Click
Set ie = Nothing
End Sub
解决方案
更新:原来这不起作用的原因是因为网站的 HTML 中有一些设置不允许自动化发生,所以我拥有的任何代码版本都是正确的,但它们注定会失败。所以你在这方面是正确的@TimWilliams。
我知道这一点是因为我试图访问的网站位于安全的服务器/虚拟机上。我编辑了代码以填写谷歌搜索栏,但它在虚拟机上不起作用,但是当我在本地运行相同的代码时,它运行良好。
推荐阅读
- javascript - 有没有办法在单个 css 动画关键帧完成时获得回调?
- c# - 实体框架更新列并在原子操作中获取旧值
- java - 有没有办法在 Java 应用程序运行时获取配置文件?
- python - 具有不同形状的 Numpy ndarray 用于 Keras 中的学习模型
- android - 在屏幕之间导航使用 react-navigation
- kubernetes - Terraform - 交错的提供者群体
- python - 如何在scrapy中使用CrawlSpider处理http错误代码
- angular - Angular 7 (RxJs 6.x) - 如何使用 throwError
- angular - Angular:不推荐使用 forkJoin?
- c# - 如何处理 C# 应用程序上的数据库重复项?