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 失败的原因。
下面几行是完整代码。
[问题] 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 失败的原因。