2015-06-06 244 views
0

我在Excel中使用VBA。我正在寻找使用VBA复制HTML表格中的某些数据。我与看起来那样工作表:使用VBA从HTML表复制/粘贴,粘贴到Excel

<table class="RatingsTable standard" id="RatingsTable1"> 
       <tr> 
        <th class="top_header" colspan="16">General & Fielding Ratings</th> 
       </tr> 
       <tr> 
        <th class="event">Event</th><th class="season">Season</th><th class="height">Height</th><th class="weight">Weight</th><th class="rating overall" title="Overall"><span class="hidden">OV</span></th><th class="rating range" title="Range"><span class="hidden">RA</span></th><th class="rating glove" title="Glove"><span class="hidden">GL</span></th><th class="rating armstrength" title="Arm Strength"><span class="hidden">AS</span></th><th class="rating armaccuracy" title="Arm Accuracy"><span class="hidden">AA</span></th><th class="rating pitchcalling" title="Pitch Calling"><span class="hidden">PC</span></th><th class="rating durability" title="Durability"><span class="hidden">DU</span></th><th class="rating health" title="Health"><span class="hidden">HE</span></th><th class="rating speed" title="Speed"><span class="hidden">SP</span></th><th class="rating patience" title="Patience"><span class="hidden">PA</span></th><th class="rating temper" title="Temper"><span class="hidden">TP</span></th><th class="rating makeup" title="Makeup"><span class="hidden">MK</span></th> 
       </tr> 

       <tr class="odd"> 
        <td class="event">Current</td><td class="season">36</td><td class="height">6-0</td><td class="weight">224</td><td>87</td><td>29</td><td>10</td><td>85</td><td>46</td><td>22</td><td>25</td><td>93</td><td>16</td><td>55</td><td>36</td><td>80</td> 
       </tr> 

       <tr class="even"> 
        <td class="event">Projected</td><td class="season">-</td><td class="height">?</td><td class="weight">?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td><td>?</td> 
       </tr> 

       <tr class="odd"> 
        <td class="event">Spring Training</td><td class="season">36</td><td class="height">6-0</td><td class="weight">224</td><td>87</td><td>29</td><td>10</td><td>85</td><td>46</td><td>22</td><td>25</td><td>93</td><td>16</td><td>55</td><td>36</td><td>80</td> 
       </tr> 

      </table> 

我期待复制和粘贴的数据是这样的部分:

<td class="event">Current</td><td class="season">36</td><td class="height">6-0</td><td class="weight">224</td><td>87</td><td>29</td><td>10</td><td>85</td><td>46</td><td>22</td><td>25</td><td>93</td><td>16</td><td>55</td><td>36</td><td>80</td> 

所以,我需要复制36,6-0,224, 87,29,10,85,46,22,25,93,16,55,36和80,但我无法抓住这个特定的数据。有人能够帮助吗?

回答

0

在Excel菜单(2007/2010或更高版本)选择“Data”选项卡,然后选择“From Web”,然后输入网址,并使用箭头图标突出显示感兴趣的HTML文档表格,然后指定在Excel中靶细胞工作表。

您可以使用Macro Recorder生成模板VBA Sub,然后根据您的特定目的对其进行微调。在Microsoft文章中详细记录了程序:https://support.office.com/en-nz/article/Get-external-data-from-a-Web-page-708f2249-9569-4ff9-a8a4-7ee5f1b1cfba(它也描述了在Excel中创建Web查询的方式,您可以使用它)。

根据你的意见增加:为了减少与你的业务逻辑相关的表的大小,如果该外部网站为你提供这个选项,你可能会创建一个参数化的自定义web查询。您最通用的解决方案是使用最适合您的目标的Web数据填充Excel工作表,然后(必要时)使用Excel VBA执行最终的数据修整。

就像FYI:还有一种下载/解析整个HTML文件的技术,但我不会推荐这种方法。

希望这可能有所帮助。最好的问候,

+0

这就是我所在的地方,因为这粘贴了整个表格,我希望能够获得更直接的宏观。使用这种方法,我只能粘贴整个表格,然后从我从网络上粘贴的内容中复制粘贴。我不知道如何从桌子上选择。 –

+0

我已根据您的其他意见扩展了答案。如果满意,请将其标记为已接受。如果您有更多问题,请将它们分开发布。最好的祝福, –