使用VBA将Web表单中的数据读取到Excel?

使用VBA将Web表单中的数据读取到Excel?,excel,web-scraping,vba,Excel,Web Scraping,Vba,我是VBA新手,需要从Excel电子表格中获取值。一旦用户单击estimate,就会显示汇率。Excel电子表格的列标题将与表单中的字段名称匹配 在表格中,“发送金额”将为50、100、500、1000、2500和7000。“来自”国家永远是“美国”。工作表中应填入表格其他字段中与“美国”及其相应汇率相对应的所有可能选项 桑托什……有两种方法可以做到这一点 拦截Web服务XML 创建到基础数据库的连接 您需要了解数据库详细信息或在VBA for XML中创建COM模块(同样需要服务器详细信息

我是VBA新手,需要从Excel电子表格中获取值。一旦用户单击estimate,就会显示汇率。Excel电子表格的列标题将与表单中的字段名称匹配

在表格中,“发送金额”将为50、100、500、1000、2500和7000。“来自”国家永远是“美国”。工作表中应填入表格其他字段中与“美国”及其相应汇率相对应的所有可能选项


桑托什……有两种方法可以做到这一点

  • 拦截Web服务XML
  • 创建到基础数据库的连接
您需要了解数据库详细信息或在VBA for XML中创建COM模块(同样需要服务器详细信息)

如果你什么都不知道。我建议你去youtube寻找“VBA com连接”或“VBA XML”。有一些不错的视频,在开放论坛上提交服务器详细信息不是一件理想的事情

这里运气不好,网站永远写着“连接…”。
但为了解决您的问题,这里有一个示例代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myIE As InternetExplorer, myDoc As HTMLDocument, mySubDoc As HTMLDivElement
Dim sVal As String, lVal As Long

Set myIE = New InternetExplorer
With myIE
    .Visible = True
    Call .navigate("http://stackoverflow.com/")
    While Not .readyState = READYSTATE_COMPLETE
        DoEvents
    Wend
    Set myDoc = .document
End With
'SAMPLE
With mySubDoc
    Set mySubDoc = myDoc.getElementsByClassName("question-summary narrow").Item(0)
    sVal = CStr(mySubDoc.ID)
    lVal = CLng(mySubDoc.NodeType)
    Call MsgBox(sVal)
    Call MsgBox(CStr(lVal))
End With
On Error Resume Next
    Call mySubDoc.Close
    Call myDoc.Close
    Call myIE.stop
    Call myIE.Quit
On Error GoTo 0
Set mySubDoc = Nothing
Set myDoc = Nothing
Set myIE = Nothing

结束子项
请注意:在Excel的VBA(ALT+F11)中,您必须将引用(工具->引用)添加到
Microsoft HTML对象库
Microsoft Internet控件
项。

您可以使用上述工具从目标站点上加载页面的页面源中提取值。因此,您必须设置所需的值,按“估算”按钮,“查看页面源代码”,然后查找要从VBA代码中提取的“值”容器节点(当然还可以添加到Excel VBA中)
关闭您的站点(即无法访问的结果页),这是我所能做的一切,但通过上面的代码,您可以确定您必须在Excel VBA中执行的其余操作。
如果没有,请在站点再次打开时在此处发布新问题或询问。

希望这对您有所帮助

@Santosh:当我手动选择该字段中的值(美国,美元,印度,10分钟服务-印度服务,1000)并点击估算时,我没有得到任何结果。。。即使我尝试过,网站也一直在显示“连接…”SiddharthRout,我也没有得到任何结果。该网站可能正在升级,因为它的周末。但我确认网站正常运行,你可以在某个时间后或直接在星期一试试。@Santosh:网站没有开放。已经试了两天了。。。我放弃:)@SiddharthRout现在开始工作了。Thanks@SiddharthRout:看来网站终于上线了。刚才我尝试了上面的选择,如santosh发布的图片所示,点击“估算”按钮,我看到的汇率为54.1420卢比。santosh。我可以编写代码,但为此我需要服务器详细信息,如我所说。不建议在开放论坛上提供服务器详细信息。我也可以建议搜索一些私人网站,为小额资金编写代码。这将是比开放论坛更好的选择。否则给版主一个很好的报价,如果他有时间并且喜欢你的报价,他可能会接受你的报价。