【问题标题】:Excel VBA - Importing Data from a Webpage TableExcel VBA - 从网页表中导入数据
【发布时间】:2014-01-18 08:59:25
【问题描述】:

网站http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142 允许开发人员以如下格式从他们的网站中提取数据:

<evec_api version="2.0" method="marketstat_xml">
    <marketstat>
        <type id="34">
            <buy>
                <volume>22949619736</volume>
                <avg>4.61</avg>
                <max>4.76</max>
                <min>1.72</min>
                <stddev>0.64</stddev>
                <median>4.66</median>
                <percentile>4.75</percentile>
            </buy>
            <sell>
                <volume>18253017309</volume>
                <avg>6.01</avg>
                <max>11.87</max>
                <min>4.79</min>
                <stddev>1.23</stddev>
                <median>6.09</median>
                <percentile>4.81</percentile>
            </sell>
            <all>
                <volume>41214748156</volume>
                <avg>5.23</avg>
                <max>11.87</max>
                <min>0.26</min>
                <stddev>1.32</stddev>
                <median>4.75</median>
                <percentile>4.31</percentile>
            </all>
        </type>
    </marketstat>
</evec_api>

如果我使用“Microsoft Excel 2010”->“数据”->“来自 Web”向导,那么所有内容都以易于使用的方式格式化,但我想使用“For Each”查询结果在 VBA 中循环。我尝试使用它来测试单个结果:

Sub URL_Static_Query()
    Set QT = ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142", _
    Destination:=Range("A1"))
    With QT
        .EnableEditing = False
        .BackgroundQuery = True
        .Refresh BackgroundQuery:=False
        .SaveData = False
    End With
End Sub

当我调用这个函数时,它的格式与使用向导的方式大不相同。这使得处理信息变得更加困难,尤其是在从同一张工作表上的多个不同网页进行查询时。

我的主要目标是只提取没有任何列或行标题的买卖结果;那些我可以手动输入的。任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 该 API 返回 XML 数据。是否考虑过使用 XML 对象来检索和处理数据,例如MSXML2.DOMDocument60
  • 你见过THIS吗?

标签: vba excel


【解决方案1】:

经过数小时的搜索,我终于从http://www.mrexcel.com/forum/excel-questions/697000-importing-web-xml-data.html 找到了我的问题的答案。

代码是:

 ActiveWorkbook.XmlImport URL:= _
        "http://api.eve-central.com/api/marketstat?typeid=34&usesystem=30000142", _                            
        ImportMap:=Nothing, _
        Overwrite:=True, Destination:=Range("$A$1")

感谢chis neilsen 的建议!它确实帮助我最终找到了我需要的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多