Vba 从网页填写excel表格

Vba 从网页填写excel表格,vba,http,Vba,Http,我想根据网页中的数据填写excel表格。我该怎么做 到目前为止,我的计划是在Excel VBA中使用WinHttpRequest。我刚刚收到超时错误:( 也许这不是最好的语言,但我不能因为一些小的超时错误而放弃。如果有人能发现我的错误,请告诉我,我会一直盯着它直到它消失。Alt+D,D,W将允许您无需代码即可完成此操作 URL必须100%正确。与浏览器不同,没有修复URL的代码 我的程序的目的是获取错误详细信息 获取正确URL的方法是在浏览器中键入URL,进行导航,正确的URL通常位于地址栏中

我想根据网页中的数据填写excel表格。我该怎么做

到目前为止,我的计划是在Excel VBA中使用WinHttpRequest。我刚刚收到超时错误:(


也许这不是最好的语言,但我不能因为一些小的超时错误而放弃。如果有人能发现我的错误,请告诉我,我会一直盯着它直到它消失。

Alt+D,D,W将允许您无需代码即可完成此操作


URL必须100%正确。与浏览器不同,没有修复URL的代码

我的程序的目的是获取错误详细信息

获取正确URL的方法是在浏览器中键入URL,进行导航,正确的URL通常位于地址栏中。另一种方法是使用链接等的属性来获取URL

另外,Microsoft.XMLHTTP映射到Microsoft.XMLHTTP.1.0.HKEY_CLASSES_ROOT\Msxml2.XMLHTTP映射到Msxml2.XMLHTTP.3.0。请尝试稍后的一个

使用xmlhttp尝试这种方法。编辑url的等。如果它似乎可行,请注释出If/end If以转储信息,即使看起来可行。这是vbscript,但vbscript在vb6中工作

 On Error Resume Next
 Set File = WScript.CreateObject("Microsoft.XMLHTTP")
 File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
 'This is IE 8 headers
 File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
 File.Send
 If err.number <> 0 then 
    line =""
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error getting file" 
    Line  = Line &  vbcrlf & "==================" 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
    Line  = Line &  vbcrlf & "Source " & err.source 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
    Line  = Line &  vbcrlf &  File.getAllResponseHeaders
    wscript.echo Line
    Err.clear
    wscript.quit
 End If

On Error Goto 0

 Set BS = CreateObject("ADODB.Stream")
 BS.type = 1
 BS.open
 BS.Write File.ResponseBody
 BS.SaveToFile "c:\users\test.txt", 2
还要注意,在锁定发生之前,可以调用任何特定XMLHTTP对象的次数是有限制的。如果发生了这种情况,并且在调试代码时发生了这种情况,只需更改为其他XMLHTTP对象即可

编辑

这就是帮助所说的

MSXML 6.0的新增功能 SQL Server 2005附带了MSXML 6.0。它还作为Web版本提供。以下是MSXML 6.0引入的功能的概要

保安

为消除安全威胁,MSXML 6.0进行了许多增强。此外,默认情况下已关闭一些不安全的功能,如DTD和内联架构。有关更多信息,请参阅MSXML安全概述

已删除XDR架构支持

已删除XML数据缩减(XDR)架构支持。有关详细信息,请参阅删除XDR架构支持

XSD标准遵从性的改进

MSXML 6.0改进了XSD架构标准的遵从性。有关更多信息,请参阅XSD标准遵从性的改进

模式缓存行为的改进

MSXML 6.0已更改XSD架构缓存的行为。当出现名称冲突时,新版本的模糊性更小。有关更多信息,请参阅架构缓存行为的改进

删除XML数字签名

MSXML 6.0删除了对XML数字签名的支持。有关更多信息,请参阅XML数字签名


编辑2

端口通过在URL的末尾放置:来指定。例如;
http://www.microsoft.com:80


编辑3


使用Excel中的宏记录器记录您的数据查询,这将为您编写大部分代码。但它们很灵活,可能不需要编程(Excel是为非程序员编写的)-设置查询时,请查看选项对话框。

为什么不直接使用Excel的Web查询功能?不需要以这种方式使用任何VBA。Neat,我不知道。我在上面查找资源时遇到困难,您知道它是否可以通过VBA使用吗?嗯,我使用的网络似乎过滤掉了某些端口(如果有意义的话),您知道是否有办法指定要使用哪个端口吗?XMLHTTP60对象可以工作,但其他任何一个都不行
 On Error Resume Next
 Set File = WScript.CreateObject("Microsoft.XMLHTTP")
 File.Open "GET", "http://www.microsoft.com/en-au/default.aspx", False
 'This is IE 8 headers
 File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
 File.Send
 If err.number <> 0 then 
    line =""
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error getting file" 
    Line  = Line &  vbcrlf & "==================" 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
    Line  = Line &  vbcrlf & "Source " & err.source 
    Line  = Line &  vbcrlf & "" 
    Line  = Line &  vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
    Line  = Line &  vbcrlf &  File.getAllResponseHeaders
    wscript.echo Line
    Err.clear
    wscript.quit
 End If

On Error Goto 0

 Set BS = CreateObject("ADODB.Stream")
 BS.type = 1
 BS.open
 BS.Write File.ResponseBody
 BS.SaveToFile "c:\users\test.txt", 2
C:\Users>reg query hkcr /f xmlhttp

HKEY_CLASSES_ROOT\Microsoft.XMLHTTP
HKEY_CLASSES_ROOT\Microsoft.XMLHTTP.1.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.3.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.4.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.5.0
HKEY_CLASSES_ROOT\Msxml2.ServerXMLHTTP.6.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.3.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.4.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.5.0
HKEY_CLASSES_ROOT\Msxml2.XMLHTTP.6.0
End of search: 12 match(es) found.