我创建了一个程序,可以为我的工作搜索几个网页 该程序工作正常,只有一个我似乎无法修复的小错误。
在抓取页面时,我使用Browser.Visible = False
将浏览器窗口设置为隐藏
有时(但不总是)浏览器会弹出并在程序运行时可见
它只在一秒钟内可见(因为我在完成它之后关闭它),但是每次运行程序时我都会运行这个sub大约12次,所以有一个常量的Internet Explorer窗口再次弹出再次在后台。
这是一个我想解决的烦恼,因为我希望我的老板用它来帮助加快工作。
Excel版:2010年 IE版本:8
以下是我打开浏览器的代码:
Sub PullTime(webSite As String, rngTime As Range, rngCase As Range, findMe As String)
Dim Browser As SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim txt As String
Dim founder As Double
Dim tempBool As Boolean
'Initialize Variables:
tempBool = True
Set Browser = New SHDocVw.InternetExplorer
Browser.Visible = False
Browser.Silent = True
Browser.Height = 10
Browser.Width = 10
Application.StatusBar = "Opening page"
Browser.navigate webSite
Do While tempBool
tempBool = WaitForBrowser(Browser, 0.5)
founder = founder + 1
If founder > 10 Then
MsgBox "Waited for longer than 5 seconds, ending program."
End
End If
Loop
Application.StatusBar = "Gaining control over DOM object"
Set HTMLDoc = Browser.document
tempBool = WaitForBrowser(Browser, 0.5)
txt = HTMLDoc.body.innerHTML
'****I MANIPULATE THE TEXT HERE, THEN CLOSE BELOW****
Application.StatusBar = ""
Browser.Quit
Set HTMLDoc = Nothing
Set Browser = Nothing
End Sub
WaitForBrowser
sub只等待0.5秒,因此浏览器可以加载,并循环一次,因为有时可能需要一两秒钟才能在此时加载浏览器。
如果有人知道为什么即使我设置了Visible甚至Silent后浏览器仍然打开,请告诉我! 请记住,这是在工作计算机上,我无法访问所有安全功能或高科技工作。