从webpage / html表中拉出特定的<TD>的内联字符

我正在试图将无缝文本拉到<TD>标签包围M118。 我试图改变这一点:

 Range("J" & (ActiveCell.Row)) = IE.Document.getelementbyid("ctl05_BasicdatagridInventoryLocations").getelementbyclass("gridItem").innerText 

find表格和行是否有一些我可以添加之前的innertextselect<TD>我试图从拉?

我正在使用的HTML是:

 <table class="grid" cellspacing="0" cellpadding="1" rules="all" border="1" id="ctl05_BasicdatagridInventoryLocations" style="border-style:Solid;width:100%;border-collapse:collapse;"> <tr class="gridPager" align="left"> <td colspan="7"><span>1</span></td> </tr> <tr class="gridHeader"> <td>Quantity</td><td>Class</td><td>UOM</td><td>Warehouse</td><td>Location</td><td>Last Cycle Count</td><td>&nbsp;</td> </tr> <tr class="gridItem" onmouseover="cc(this, true);" onmouseout="cc(this, false);"> <td>5</td><td>NEW</td><td>EA</td><td>Rig Warehouse</td><td>M118</td><td>11 Sep 2013</td><td></td> </tr> </table> 

你可以使用这个(在IE10中testing):

 Sub sof20167953GetIeWebpage() Dim objIe As Object Dim xobj Set objIe = CreateObject("InternetExplorer.Application") objIe.Visible = True ' objIe.navigate "http://www.example.com/MyTable.html" ' While (objIe.Busy Or objIe.READYSTATE <> 4) DoEvents Wend ' Set xobj = objIe.Document.getElementById("ctl05_BasicdatagridInventoryLocations").getElementsByClassName("gridItem").Item(0) Set xobj = xobj.getElementsByTagName("td").Item(4) ' Range("J" & (ActiveCell.Row)) = xobj.innerText ' Set xobj = Nothing ' objIe.Quit Set objIe = Nothing End Sub 

请注意:

  1. getElementById()获取单个元素。
  2. getElementsByClassName()获取元素的集合,所以使用.Item(0)获取第一个元素
  3. getElementsByTagName()获取元素的集合,所以使用.Item(0)获取第一个元素