VBA 单击 Web 浏览器按钮以实现自动化

VBA Webbrowser Button Click for Automation

下面几行是完整代码。

[问题] VBA 表单显示 Google 并输入 "best radio" 的值并单击按钮。 1) 但是在成功输入 Google 页面并输入 "best radio" 后出现 438 错误。 2) 单击 'Google Search' 按钮,但只有当我按下回车键时, Google 才会显示搜索结果。

Option Explicit
Dim objIE
Private Sub CommandButton1_Click()
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.Addressbar = 0
objIE.StatusBar = 0
objIE.Toolbar = 0
objIE.Visible = True
objIE.Navigate ("http://www.google.com")

Do
DoEvents
Loop Until objIE.ReadyState = 4
     objIE.Document.GetElementByID("lst-ib").Value = "best radio"
     objIE.Document.GetElementsByName("btnK").Click
     SendKeys "{ENTER}"


Do
DoEvents
Loop Until objIE.ReadyState = 4
MsgBox "complete"


End Sub

删除 objIE.Document.GetElementsByName("btnK").Click。然后 Google 页面正常打开,并显示 'best radio' 的结果。

解释: 问题在于他们的页面是交互式的,甚至在您点击 'Enter' 之前就自动从主页切换到结果页面。因此 btnK 按钮被删除,您可以不再点击(但正在尝试点击)。这就是 Excel 失败的原因。