Excel 使用vba复制已打开IE页面上的所有内容
我知道如何打开一个新的和复制一切 我还知道如何引用已经打开的IE页面 我正在努力从已经打开的internet explorer页面复制 请帮忙Excel 使用vba复制已打开IE页面上的所有内容,excel,vba,internet-explorer,copy-paste,Excel,Vba,Internet Explorer,Copy Paste,我知道如何打开一个新的和复制一切 我还知道如何引用已经打开的IE页面 我正在努力从已经打开的internet explorer页面复制 请帮忙 Function GetIE() As Object 'return an object for the open Internet Explorer window, or create new one For Each GetIE In CreateObject("Shell.Application").Windows() 'L
Function GetIE() As Object
'return an object for the open Internet Explorer window, or create new one
For Each GetIE In CreateObject("Shell.Application").Windows() 'Loop to find
If (Not GetIE Is Nothing) And GetIE.Name = "Internet Explorer" Then Exit For 'Found!
Next GetIE
If GetIE Is Nothing Then Set GetIE = CreateObject("InternetExplorer.Application") 'Create
GetIE.Visible = True 'Make IE window visible
' (this is where the code fail) down
IE.ExecWB 17, 0 '// SelectAll
IE.ExecWB 12, 2 '// Copy selection
ActiveSheet.PasteSpecial Format:="Text", link:=False, DisplayAsIcon:=False
Range("A1").Select
IE.Quit
End Function
基本上我需要这个代码:使用已经打开的IE窗口,而不是URL
Sub Test()
Dim IE As Object
Sheets("Sheet3").Select
Range("A1:A1000") = "" ' erase previous data
Range("A1").Select
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate "http://www.aarp.org/" ' should work for any URL
Do Until .ReadyState = 4: DoEvents: Loop
End With
IE.ExecWB 17, 0 '// SelectAll
IE.ExecWB 12, 2 '// Copy selection
ActiveSheet.PasteSpecial Format:="Text", link:=False, DisplayAsIcon:=False
Range("A1").Select
IE.Quit
End Sub
如果您只想打开一个IE窗口,那么可以使用
GetObject()
如果您想获得一个特定的打开窗口(通过URL),则可以执行以下操作:
子测试仪()
模糊的物体
设置IE=GetIE(“http://www.aarp.org/")
如果不是的话,我什么都不是
IE.ExecWB 17,0'//SelectAll
IE.ExecWB 12,2'//复制选择
ActiveSheet.Paste特殊格式:=“文本”,链接:=False,显示图标:=False
范围(“A1”)。选择
即退出
如果结束
端接头
使用此选项:
”获取对现有IE窗口的引用,给定部分URL
函数GetIE(sLocation作为字符串)作为对象
Dim objShell作为对象,objShellWindows作为对象,o作为对象
作为字符串的Dim sURL
作为对象的Dim retVal
设置retVal=Nothing
设置objShell=CreateObject(“Shell.Application”)
设置objShellWindows=objShell.Windows
对于objShellWindows中的每个o
sURL=“”
错误时“继续下一步”,因为可能没有“文档”属性
'检查URL,如果它是您想要的,那么
'将窗口对象指定给返回值并退出循环
sURL=o.document.Location
错误转到0
如果sURL喜欢sLocation&“*”那么
设置retVal=o
退出
如果结束
下一个o
设置GetIE=retVal
端函数
如果你只想打开一个IE窗口,那么你可以使用GetObject()
来实现
如果您想获得一个特定的打开窗口(通过URL),则可以执行以下操作:
子测试仪()
模糊的物体
设置IE=GetIE(“http://www.aarp.org/")
如果不是的话,我什么都不是
IE.ExecWB 17,0'//SelectAll
IE.ExecWB 12,2'//复制选择
ActiveSheet.Paste特殊格式:=“文本”,链接:=False,显示图标:=False
范围(“A1”)。选择
即退出
如果结束
端接头
使用此选项:
”获取对现有IE窗口的引用,给定部分URL
函数GetIE(sLocation作为字符串)作为对象
Dim objShell作为对象,objShellWindows作为对象,o作为对象
作为字符串的Dim sURL
作为对象的Dim retVal
设置retVal=Nothing
设置objShell=CreateObject(“Shell.Application”)
设置objShellWindows=objShell.Windows
对于objShellWindows中的每个o
sURL=“”
错误时“继续下一步”,因为可能没有“文档”属性
'检查URL,如果它是您想要的,那么
'将窗口对象指定给返回值并退出循环
sURL=o.document.Location
错误转到0
如果sURL喜欢sLocation&“*”那么
设置retVal=o
退出
如果结束
下一个o
设置GetIE=retVal
端函数
我建议您尝试使用下面的代码示例进行测试,它可以帮助您将网页内容从已打开的IE实例复制到Excel工作表中
VBA代码:
Sub demo()
Sheets("Sheet1").Select
Range("A1:A1000") = ""
Range("A1").Select
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next
my_title = objShell.Windows(x).document.Title
If my_title Like "AARP? Official Site - Join & Explore the Benefits" & "*" Then
Set IE = objShell.Windows(x)
If Not IE Is Nothing Then
IE.ExecWB 17, 0
IE.ExecWB 12, 2
ActiveSheet.PasteSpecial Format:="Text", link:=False, DisplayAsIcon:=False
Range("A1").Select
'IE.Quit
End If
Exit For
Else
End If
Next
End Sub
输出:
此外,您可以根据自己的要求修改代码示例。我建议您尝试使用下面的代码示例进行测试,这可能有助于您将网页内容从已打开的IE实例复制到Excel工作表 VBA代码:
Sub demo()
Sheets("Sheet1").Select
Range("A1:A1000") = ""
Range("A1").Select
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next
my_title = objShell.Windows(x).document.Title
If my_title Like "AARP? Official Site - Join & Explore the Benefits" & "*" Then
Set IE = objShell.Windows(x)
If Not IE Is Nothing Then
IE.ExecWB 17, 0
IE.ExecWB 12, 2
ActiveSheet.PasteSpecial Format:="Text", link:=False, DisplayAsIcon:=False
Range("A1").Select
'IE.Quit
End If
Exit For
Else
End If
Next
End Sub
输出:
此外,您可以根据自己的要求修改代码示例。您是否收到错误?问题到底出在哪里?你能做到吗?请详细说明你的问题,问题被编辑成附加@TimWilliams的答案,根据你的评论,你还没有实现它。友好提示:StackOverflow不是“我们为您编码”服务提供商。或者是我的,你有错误吗?问题到底出在哪里?你能做到吗?请详细说明你的问题,问题被编辑成附加@TimWilliams的答案,根据你的评论,你还没有实现它。友好提示:StackOverflow不是“我们为您编码”服务提供商。或者,我的工作表可以添加代码将网站上的所有内容复制到我的工作表中吗?它与您已有的代码相同(甚至
IE
变量的名称也相同)。你试过添加你的代码吗?我正在努力合并它们。我试过了。似乎什么都不管用。我试图完成的事情的崩溃;手动打开IE网站。运行VBA代码,该代码将-复制已打开网站上的所有信息-将其粘贴到我的工作表。-然后关闭IE浏览器。请参见上面的编辑内容\n是否可以添加代码以将网站上的所有内容复制到我的工作表中?它与您已有的代码相同(甚至IE
变量的名称也相同)。你试过添加你的代码吗?我正在努力合并它们。我试过了。似乎什么都不管用。我试图完成的事情的崩溃;手动打开IE网站。运行VBA代码,该代码将-复制已打开网站上的所有信息-将其粘贴到我的工作表。-然后关闭IE浏览器。请参阅上面的编辑\