下面分享一些关于调用IE浏览器的常用功能:
1. VBA调用 InternetExplorer IE浏览器组件
Sub IE()
' Create Internet Explorer Application, going on the internet!
Set IE = CreateObject("InternetExplorer.Application")
' Internet Explorer Visible
IE.Visible = True
' Internet Explorer Left & Top Position on the screen
IE.Left = 0
IE.Top = 0
' Internet Explorer Height & Width Settings
IE.Height = 1024
IE.Width = 1280
' Internet Explorer Navigate To office-cn
IE.Navigate "
http://www.office-cn.net"
To stop IE I use a command button with as code under the click event :
' Stop & Close Internet Explorer
IE.Stop
IE.Quit
End Sub
2. 使用VBA打开URL地址并在表单中输入数据
'This Must go at the top of your module. It's used to set IE as the active window
Public Declare Function SetForegroundWindow Lib "user32" (ByVal HWND As Long) As Long
Sub Automate_IE_Enter_Data()
'This will load a webpage in IE
Dim i As Long
Dim URL As String
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
Dim HWNDSrc As Long
'Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
'Set IE.Visible = True to make IE visible, or False for IE to run in the background
IE.Visible = True
'Define URL
URL = "
https://www.office-cn.net"
'Navigate to URL
IE.Navigate URL
' Statusbar let's user know website is loading
Application.StatusBar = URL & " is loading. Please wait..."
' Wait while IE loading...
'IE ReadyState = 4 signifies the webpage has loaded (the first loop is set to avoid inadvertantly skipping over the second loop)
Do While IE.ReadyState = 4: DoEvents: Loop
Do Until IE.ReadyState = 4: DoEvents: Loop
'Webpage Loaded
Application.StatusBar = URL & " Loaded"
'Get Window ID for IE so we can set it as activate window
HWNDSrc = IE.HWND
'Set IE as Active Window
SetForegroundWindow HWNDSrc
'Find & Fill Out Input Box
n = 0
For Each itm In IE.document.all
If itm = "[object HTMLInputElement]" Then
n = n + 1
If n = 3 Then
itm.Value = "orksheet"
itm.Focus 'Activates the Input box (makes the cursor appear)
Application.SendKeys "{w}", True 'Simulates a 'W' keystroke. True tells VBA to wait
'until keystroke has finished before proceeding, allowing
'javascript on page to run and filter the table
GoTo endmacro
End If
End If
Next
'Unload IE
endmacro:
Set IE = Nothing
Set objElement = Nothing
Set objCollection = Nothing
End Sub